1. 合併(merge)
git merge dev // 合併dev分支上的修改
其實,merge分為兩種型別:fast-forward 和 no-fast-forward。
在當前分支相比於我們要合併的分支沒有額外的提交(commit)時,可以執行 fast-forward 合併。git 很懶,首先會嘗試執行最簡單的選項:fast-forward!這類合併不會建立新的提交,而是會將我們正在合併的分支上的提交直接合併到當前分支。
如果你的當前分支相比於你想要合併的分支沒有任何提交,那當然很好,但很遺憾現實情況很少如此!如果我們在當前分支上提交我們想要合併的分支不具備的改變,那麼 git 將會執行 no-fast-forward 合併。
2. 變基(rebase)
git rebase master // 複製master分支到當前
我們剛看到可通過執行 git merge 將乙個分支的修改應用到另乙個分支。另一種可將乙個分支的修改融入到另乙個分支的方式是執行 git rebase。
git rebase 會將當前分支的提交複製到指定的分支之上。事實上,我的理解是,git merge 比 git rebase 多了乙個合併的commit記錄,執行 rebase 的分支總是含有我們想要保留的最新近的修改!這樣我們不會遇到任何合併衝突,而且可以保留乙個漂亮的、線性的 git 歷史記錄。
另外,互動式變基,簡單提一句,因為我感覺我已經爐火純青了,手動狗頭,
git rebase -i head~3 // 修改最近3條提交記錄
3. 重置(reset)
當我們不想要之前提交的修改時,就會用到這個命令。也許這是乙個 wip 提交或者可能是引入了 bug 的提交,這時候就要執行 git reset。
git reset 能讓我們不再使用當前臺面上的檔案,讓我們可以控制 head 應該指向的位置。
軟重置 --soft
軟重置會將 head 移至指定的提交(或與 head 相比的提交的索引),而不會移除該提交之後加入的修改!
硬重置 --hard
有時候我們並不想保留特定提交引入的修改。不同於軟重置,我們應該再也無需訪問它們。git 應該直接將整體狀態直接重置到特定提交之前的狀態,也就是說會清掉重置部分的提交記錄。
4. 還原(revert)
除了reset,另一種撤銷修改的方法是執行 git revert。通過對特定的提交執行還原操作,我們會建立乙個包含已還原修改的新提交。
git revert 會保留撤銷修改的內容,相當於重新提交了一次包含還原修改的部分 。
5. 取回(fetching)
6. 拉取(pull)
儘管 git fetch 可用於獲取某個分支的遠端資訊,但我們也可以執行 git pull。
git pull 實際上是兩個命令合成了乙個:git fetch 和 git merge。
7. 日誌(reflog)
git reflog // 檢視最近的所有動作的日誌
每個人都會犯錯,但犯錯其實沒啥!有時候你可能感覺你把 git repo 完全搞壞了,讓你想完全刪了了事。
這個時候,git reflog 就是後悔藥,當我們破壞了git repo 的時候,或許你還有救,因為它保留了所有操作的日誌,包括合併、重置、還原,基本上包含你對你的分支所做的任何修改。然後通過重置或者還原,會讓你感動地擦乾悔恨的淚水。
8. 揀選(cherry-pick)
當你需要從另外乙個分支,獲取某一次提交,而不是整個分支的內容時,你可以使用cherry-pick。對乙個提交執行 cherry-pick 時,我們會在活動分支上建立乙個新的提交,其中包含由揀選出來的提交所引入的修改。
git cherry-pick 76d12 // 揀選記錄為76d12的提交內容到當前分支;
原文參考
常用 git 命令清單 - 阮一峰
git 最常用操作命令
gitbase 第零步 不吐槽 什麼sshkey啊,什麼clone到本地 見 gitbase第一步 0 學會使用helpgit help 不習慣就習慣使用help吧 1 檢視分支git branch超高頻使用的命令 檢視本地分支 2 檢視所有分支git branch a 這個命令可以檢視所有分支喔 ...
git最常用的操作命令
0.一無所有。1.2.公司或者個人都會先在伺服器上建好乙個 倉庫,如 gitlab,碼雲或者在自己租的伺服器上搭乙個 倉庫。3.進入d盤,右鍵滑鼠選中git bash here即可開啟git shell視窗,在裡面就可以寫cmd or git 命令。先來轉殖遠端伺服器的 執行 git clone 開...
最常用的git操作
1.新建並切換到本地分支 git checkout b dev2.本地 和遠端 的的關聯 git pull origin dev3.在本地新建分支 git checkout b dev4.把本地分支推到遠端分支 git push origin dev5.更新遠端分支 git remote updat...