關於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 是參數,^是上一版本,
// 也能夠用~一、~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