利用命令行提交代碼步驟
首先,進(jìn)入你的項(xiàng)目目錄
1:拉取服務(wù)器代碼,避免覆蓋他人代碼
git pull
2:查看當(dāng)前項(xiàng)目中有哪些文件被修改過(guò)
git status
具體狀態(tài)如下:
1:Untracked: 未跟蹤,一般為新增文件,此文件在文件夾中, 但并沒(méi)有加入到git庫(kù), 不參與版本控制. 通過(guò)git add 狀態(tài)變?yōu)镾taged.
2:Modified: 文件已修改, 僅僅是修改, 并沒(méi)有進(jìn)行其他的操作.
3:deleted: 文件已刪除,本地刪除,服務(wù)器上還沒(méi)有刪除.
4:renamed:文件改名, 因?yàn)槿绻挥锰厥馓幚?,改名之后git只會(huì)認(rèn)為你刪了這個(gè)文件,又新建了另一個(gè)文件。
3:將狀態(tài)改變的代碼提交至緩存
git add + 文件
git add -u + 路徑:將修改過(guò)的被跟蹤代碼提交緩存
git add -A + 路徑: 將修改過(guò)的未被跟蹤的代碼提交至緩存
例如:
git add -u vpaas-frontend/src/components
將 vpaas-frontend/src/components 目錄下被跟蹤的已修改過(guò)的代碼提交到緩存中
git add -A vpaas-frontend/src/components
將 vpaas-frontend/src/components 目錄下未被跟蹤的已修改過(guò)的代碼提交到緩存中
git add .
使用上面的命令將所有的修改的文件提交到緩存區(qū)
4:將代碼提交到本地倉(cāng)庫(kù)中
git commit -m “修改項(xiàng)目代碼”
5:將緩存區(qū)代碼推送到Git服務(wù)器
git push
$ git push origin
上面命令表示,將當(dāng)前分支推送到origin主機(jī)的對(duì)應(yīng)分支。?
如果當(dāng)前分支只有一個(gè)追蹤分支,那么主機(jī)名都可以省略。?
$ git push 如果當(dāng)前分支與多個(gè)主機(jī)存在追蹤關(guān)系,那么這個(gè)時(shí)候-u選項(xiàng)會(huì)指定一個(gè)默認(rèn)主機(jī),這樣后面就可以不加任何參數(shù)使用git push。
$ git push -u origin master 上面命令將本地的master分支推送到origin主機(jī),同時(shí)指定origin為默認(rèn)主機(jī),后面就可以不加任何參數(shù)使用git push了。
不帶任何參數(shù)的git push,默認(rèn)只推送當(dāng)前分支,這叫做simple方式。此外,還有一種matching方式,會(huì)推送所有有對(duì)應(yīng)的遠(yuǎn)程分支的本地分支。Git 2.0版本之前,默認(rèn)采用matching方法,現(xiàn)在改為默認(rèn)采用simple方式。
1:誤將代碼提交到緩存中(利用 git add 命令誤將代碼提交的緩存中)
解決辦法:利用 git reset 命令將撤回緩存中的代碼。
2:誤將代碼提交到本地倉(cāng)庫(kù)(利用 git commit 命令誤將代碼提交到本地倉(cāng)庫(kù))
解決辦法:
git reset —hard + 版本號(hào)
徹底回退到某個(gè)版本,本地的代碼也會(huì)改變上一個(gè)版本內(nèi)容。
開(kāi)發(fā)常用git指令:
git init? # 初始化本地git環(huán)境
git clone? <xxx>? <#> 克隆一份代碼到本地
git config --globa user.name/user.email? # 修改全局的用戶名稱/郵箱
git checkout -b xxx? # 基于當(dāng)前分支創(chuàng)建xxx分支并切換到xxx分支
git checkout xxx? # 切換到xxx分支
git checkout -d xxx? # 刪除本地xxx分支
?git checkout -- readme.txt? ? ?撤銷修改:1. 文件在添加到緩存區(qū)前修改,則回退到原工作區(qū)狀態(tài);2. 文件在添加到緩存區(qū)后修改,則回退到原緩存區(qū)狀態(tài)。也即是將readme.txt撤回到最近一次git add或git commit狀態(tài)(注:--表示在當(dāng)前分支,如果沒(méi)有,則切換到另一個(gè)分支)
git push origin --delete xxx? # 刪除遠(yuǎn)端xxx分支
git push origin xxx:xxx? # 將本地xxx分支推送到遠(yuǎn)端
git branch -a/-r? # 查看全部分支/查看遠(yuǎn)端分支
git branch -d? # 刪除本地分支
git remote prune origin #刪除遠(yuǎn)端不存在的分支
git pull origin xxx? ?# 將遠(yuǎn)端xxx分支拉取到當(dāng)前分支(將git fetch 和 git merge 合并為一步)
git fetch origin xxx? # 將遠(yuǎn)端分支更新到當(dāng)前分支(單獨(dú)進(jìn)行下載和合并是一個(gè)好的做法,你可以先看看下載的是什么,然后再?zèng)Q定是否和本地代碼合并。git diff xxx xxx,? git merge xxx)
git add xxx? # 將本地文件xxx添加到stage中
git commit -m "xxx"? # 將stage中文件提交到本地倉(cāng)庫(kù),備注為xxx
git commit --amend? # 將stage中的文件追加到上一次提交中
git merge xxx? # 將xxx分支合并到當(dāng)前分支,可能會(huì)出現(xiàn)沖突,修改沖突后 git commit
git push origin xxx? ?# 將分支推送到遠(yuǎn)端xxx分支
git stash? # 把未完成的修改緩存到棧容器中
git stash list? # 查看所有的緩存
git stash pop? # 恢復(fù)最近一次緩存到當(dāng)前分支
git stash drop file? # 刪除緩存的stash
git stash clear? # 清空棧內(nèi)所有緩存
git status? # 查看當(dāng)前分支有哪些修改
git log? # 查看當(dāng)前分支上面的日志信息
git diff? # 查看當(dāng)前沒(méi)有add的內(nèi)容
git diff --cache? # 查看已經(jīng)add但沒(méi)有commit的內(nèi)容
git diff xxx xxx? # 對(duì)比兩條分支之間不同的代碼(可在向遠(yuǎn)端提交代碼之前或合并分支之前看自己做了哪些更改)
git show xxx? # 查看某次提交的具體內(nèi)容
git resert --hard HEAD? # 撤銷本地修改
目前正在有完成。突然一個(gè)緊急的bug需要處理:
git add .? # 添加修改到stage
git stash? # 添加到緩存
git checkout xxx? # 切換到xxx問(wèn)題分支
git pull origin xxx? # 拉取xxx分支的最新代碼
git add xxx? # 將修改的文件添加到stage
git commit -m “” # 提交修改
git push origin xxx? # 推送到遠(yuǎn)端
git checkout xxx? # 切換到之前的分支
git stash pop? # 恢復(fù)之前修改的內(nèi)容,繼續(xù)進(jìn)行開(kāi)發(fā)