代碼提交一般有五個步驟:
1.查看目前代碼的修改狀態(tài)
2.查看代碼修改內(nèi)容
3.暫存需要提交的文件
4.提交已暫存的文件
5.同步到服務(wù)器
1. ****查看目前代碼的修改狀態(tài)
提交代碼之前褒纲,首先應(yīng)該檢查目前所做的修改敢辩,運(yùn)行g(shù)it status命令
a) 已暫存 (changes to be committed)
new file //表示新建文件
modified //表示修改文件
deleted //表示刪除文件
b) 已修改 (changed but not updated)
modified //表示修改文件
deleted //表示刪除文件
另外慨削,git 給出了可能需要的操作命令秀仲,git add/rm, gitcheckout --
c) 未跟蹤 (untracked files)
2. ****查看代碼修改的內(nèi)容
git diff <file>
使用 git diff 命令可以查看工作區(qū)與暫存區(qū)之間的差異。
使用 git diff <gitreversion> 命令可以查看工作區(qū)與指定版本之間的差異乖酬。
使用 git diff --cached 命令可以查看暫存區(qū)與當(dāng)前 HEAD 指針指向版本之間的差異弱贼。
使用 git diff --cached <gitreversion> 命令可以查看暫存區(qū)與指定版本之間的差異。
使用 git diff -- <file> 可以查看特定文件在工作區(qū)與暫存區(qū)之間的差異陡鹃。
使用 git diff <gitreversion> -- <file> 可以查看特定文件在工作區(qū)與指定版本之間的差異烘浦。
使用 git diff --cached -- <file> 可以查看特定文件在暫存區(qū)與當(dāng)前 HEAD 指針指向版本之間的差異。
使用 git diff --cached <gitreversion> -- <file> 可以查看特定文件在暫存區(qū)與指定版本之間的差異萍鲸。
比較某文件與最近提交節(jié)點(diǎn)的差異闷叉。
注意:如果該文件已暫存,那么應(yīng)該使用git diff –cached<file>
git diff <hashcode> <hashcode> <file>
比較某文件在提交節(jié)點(diǎn)a猿推,節(jié)點(diǎn)b的差異片习。
技巧:如果省略后面一個hashcode捌肴,則默認(rèn)表示與上一提交節(jié)點(diǎn)比較蹬叭。(也可以利用^運(yùn)算符)
3. ****暫存需要提交的文件
如果是新建的文件
則git add <file>
如果是提交全部
則git add . 或者 git add -A
如果是修改的文件 則git add <file> 如果是刪除的文件 則 git rm <file>
4. ****提交已暫存的文件
git commit
注意注釋填寫規(guī)范。
git commit --amend
修改最近一次提交状知。有時候如果提交注釋書寫有誤或者漏提文件秽五,可以使用此命令。
5. ****同步到服務(wù)器
同步到服務(wù)器前先需要將服務(wù)器代碼同步到本地
命令: git pull
如果執(zhí)行失敗饥悴,就按照提示還原有沖突的文件坦喘,然后再次嘗試同步。
命令:git checkout -- <有沖突的文件路徑>
同步到服務(wù)器
命令: git push origin <本地分支名>
如果執(zhí)行失敗西设,一般是沒有將服務(wù)器代碼同步到本地導(dǎo)致的瓣铣,先執(zhí)行上面的git pull命令。
6. ****刪除工作區(qū)的更改
git checkout -- file可以丟棄工作區(qū)的修改
例如:
git checkout -- readme.txt意思就是贷揽,把readme.txt文件在工作區(qū)的修改全部撤銷棠笑,
7. ****刪除緩存區(qū)的更改
git reset HEAD <file>可以把暫存區(qū)的修改撤銷掉(unstage),重新放回工作區(qū)
例如:
git reset HEAD readme.txt
8. ****刪除文件
rm <file>
例如:
git rm test.txt
另一種情況是刪錯了禽绪,因?yàn)榘姹編炖镞€有呢蓖救,所以可以很輕松地把誤刪的文件恢復(fù)到最新版本:
$ git checkout -- test.txt