Git 入門(二)--- 常用指令和問題處理
關於Add與Commit
git add .
將所有修改提交到stage 快取區
git commit
將快取區的更改提交到本地倉庫
那麼,問題來了:
-
如何取消
commit
,也就是撤銷提交到本地倉庫的操作?
add
放棄檔案修改(修改了檔案,未執行git add
命令)
放棄單個檔案的修改git checkout xxx
xxx是檔案path
放棄所有檔案更改git checkout .
放棄檔案的增加(新建了檔案、為add
)
放棄單個檔案的新增rm xxx
,其實就是cmd刪除檔案命令
放棄所有新增的檔案git clean xdf
,刪除所有新增的檔案(不包括已經新增到快取區的)。
撤銷提交到快取區(執行了git add .
命令,未commit
)
撤銷單個檔案git reset HEAD xxx
,xxx是檔名
撤銷所有檔案git reset HEAD .
撤銷提交到本地倉庫(即取消git commit
)
說明,執行了git commit
之後,相當於本地倉庫已經更新了一個版本,就等待push
了,那麼要撤銷commit
也就是要回退版本,這種情形就是要將本地倉庫回退1
個版本。
git reset --hard HEAD^ // --hard 是引數,^是上一版本, // 也可以用~1、~2,表示回退多少個版本
--soft / --hard / --mixed
三個引數的說明:
--soft
:暫存區的內容和本地已提交的內容全部恢復到未暫存
的狀態,換言之,add
和commit
的內容全部都會變成未add
的狀態。
--mixed
:保留快取區的內容,已提交的內容回到快取
區。
--hard
:快取區的內容和已提交的內容都會被清空。(慎用!)
關於建立分支
git checkout -b xxx
建立並切換到xxx
分支,其實,這是在當前分支的基礎上建立xxx
分支,並切換到xxx
分支。
也可以指定以其他分支為基礎來建立:git checkout -b xxx master
。
涉及的問題:
如果當前所在分支有未`add`到快取區或者未`commit`的更改時是不能切換分支的, 也就是說上述的建立並切換到分支是不會執行的。 因此,當前所在分支要`commit`後才能切換分支。
合併其他分支
git merge xxx
將xxx分支合併到當前分支。
關於刪除分支
刪除本地分支git branch -D xxx
注意大寫D
刪除遠端的分支git push orgin -d xxx