Git提交代碼步驟
-
查看Git項(xiàng)目文件的狀態(tài)
$ git status
Untracked files 表示未追蹤的文件
Changes not staged for commit 表示內(nèi)容改變需要git add加到暫存區(qū) -
工作區(qū) > 暫存區(qū)
$ git add <filename> / git add . //'.'表示當(dāng)前目錄下的全部文件 $ git reset HEAD <filename> //撤銷添加到暫存區(qū)
-
暫存區(qū) > 當(dāng)前分支(版本庫(kù))
$ git commit -m "commit message"
$ git checkout --<filename>
撤銷文件在工作區(qū)的全部修改:
- 修改后還沒(méi)有被放到暫存區(qū)怕犁,撤銷修改后回到版本庫(kù)狀態(tài);
- 已經(jīng)添加到暫存區(qū)又作了修改碴巾,撤銷修改后回到添加到暫存區(qū)后的狀態(tài)彰亥。
-
推送到遠(yuǎn)程分支、沖突解決
$ git push [remote-name] [branch-name]
$ git pull --rebase //保留沖突從遠(yuǎn)程倉(cāng)庫(kù)拉取最新的代碼
- 若是提示信息里沒(méi)有提示沖突的文件,則繼續(xù)git push
- 若是提示沖突文件,在每個(gè)沖突文件中刪除“HEAD ----->>>>”等冗余字符
保留需要的代碼確認(rèn)無(wú)誤后,執(zhí)行以下代碼:
$ git add . $ git rebase --continue $ git push
- 還有個(gè)情況,會(huì)刪除沖突文件,可以退出rebasing,再git pull拉取代碼進(jìn)行merge操作
$ git rebase --abort
-
代碼儲(chǔ)存
-
git pull
時(shí)若是還有未提交的改變,會(huì)提示錯(cuò)誤:
error: cannot pull with rebase: Your index contains uncommitted changes.
error: please commit or stash them.
- 若有一些不需要傳到版本庫(kù)的文件褒链,可以在commit之后阻问,用stash命令儲(chǔ)存改變昌简,待傳完后釋放吟逝。
$ git stash //儲(chǔ)存在剛提交的分支上(未追蹤的文件不會(huì)被儲(chǔ)存) $ git stash apply //恢復(fù)最新的進(jìn)度到工作區(qū) $ git stash list //顯示保存進(jìn)度的列表 $ git stash apply [stash_id] //恢復(fù)指定的進(jìn)度到工作區(qū)
-
其他命令
-
顯示所有提交過(guò)的版本信息
$ git log // 利用這個(gè)版本記錄帽蝶,可以回退到我們之前提交的任何一次提交過(guò)的版本
-
查看所有分支的所有操作記錄(包括已經(jīng)被刪除的 commit 記錄和 reset 的操作)
$ git reflog
-
回退到任意一次記錄
$ git reset --hard [log_id]
-
查看版本改動(dòng)
- 工作區(qū)<->暫存區(qū)
$ git diff
- 當(dāng)暫存區(qū)中沒(méi)有文件時(shí),git diff比較的是块攒,工作區(qū)中的文件與上次提交到版本庫(kù)中的文件励稳。
- 當(dāng)暫存區(qū)中有文件時(shí),git diff則比較的是局蚀,當(dāng)前工作區(qū)中的文件與暫存區(qū)中的文件。
- 暫存區(qū)<->版本庫(kù)
$ git diff --cached
- 工作區(qū)<->版本庫(kù)
$ git diff HEAD --<filename>
-
大小寫重命名
$ git mv -f <oldfilename> <newfilename>
大小寫修改識(shí)別不出恕稠,需要先修改成其他名字再改回來(lái)
-
分支重命名
$ git branch -m <oldbranchname> <newbranchname>
不懂的問(wèn)題都可以留言哦~