Git常用指令匯總

提交到版本庫:git commit

切換到新分支:git checkout -b newBranch

合并分支:git merge xxx

單線合并:git rebase xxx

*HEAD 是一個對當(dāng)前檢出記錄的符號引用,總是指向當(dāng)前分支上最近一次提交記錄
cat .git/HEAD 或者git symbolic-ref HEAD查看HEAD的指向
HEAD可以分離,指向某一commit

查看提交記錄的哈希值:git log

相對引用:1.使用 ^ 向上移動 1 個提交記錄;2.使用 ~<num> 向上移動多個提交記錄,如 ~3
將 master 分支強制指向 HEAD 的第 3 級父提交:git branch -f master HEAD~3

撤銷改動:git reset HEAD^
遠程撤銷改動,但會提交一個commit,然后再push就可以同步遠程撤銷:git revert
將一些提交復(fù)制到當(dāng)前所在的位置(HEAD):git cherry-pick commitid commitid

交互式rebase,修改commit的順序、合并方式:git rebase -i HEAD~4(commitid)

修改commit:git commit --amend

建立標(biāo)簽:git tag tagname commitId
命令用來描述離你最近的錨點(也就是標(biāo)簽):git describe <ref>(提交的引用)

多個父節(jié)點選擇^:git checkout master^n(從右到左第幾)

克隆遠程分支:git clone
你的遠程倉庫默認(rèn)為 origin,本地倉庫多了一個名為 o/master 的分支, 這種類型的分支就叫遠程分支,遠程分支反映了遠程倉庫(在你上次和它通信時)的狀態(tài),遠程分支有一個特別的屬性,在你檢出時自動進入分離 HEAD 狀態(tài)。

從遠程倉庫獲取數(shù)據(jù)時, 遠程分支也會更新以反映最新的遠程倉庫:git fetch
git fetch 完成了僅有的但是很重要的兩步:

  1. 從遠程倉庫下載本地倉庫中缺失的提交記錄
  2. 更新遠程分支指針(如 o/master)

git fetch 和 git merge <just-fetched-branch> 的縮寫:git pull

推送到遠程:git push
*git push 不帶任何參數(shù)時的行為與 Git 的一個名為 push.default 的配置有關(guān)。
推送標(biāo)準(zhǔn)公式:
git fetch; git rebase o/master; git push=》git pull --rebase; git push

遠程跟蹤:master 和 o/master 的關(guān)聯(lián)關(guān)系就是由分支的“remote tracking”屬性決定的。當(dāng)你克隆倉庫的時候, Git 就自動幫你把這個屬性設(shè)置好了。
當(dāng)你克隆時, Git 會為遠程倉庫中的每個分支在本地倉庫中創(chuàng)建一個遠程分支(比如 o/master)。然后再創(chuàng)建一個跟蹤遠程倉庫中活動分支的本地分支,默認(rèn)情況下這個本地分支會被命名為 master。

通過遠程分支檢出一個新的分支:git checkout -b localbranchname origin/master
設(shè)置遠程追蹤分支:git branch -u origin/master foo

為 push 指定參數(shù):git push <remote> <place>
把本地的 foo 分支推送到遠程倉庫中的 bar 分支:
git push origin <source>:<destination>

為 fetch指定參數(shù)git fetch <remote> <place>
git fetch origin <source>:<destination>,source 現(xiàn)在指的是遠程倉庫中的位置,而 <destination> 才是要放置提交的本地倉庫的位置。它與 git push 剛好相反,git pull同理

古怪的 <source>:

  1. 可以在 git push 或 git fetch 時不指定任何 source,方法就是僅保留冒號和 destination 部分,source 部分留空。
    git push origin :side 刪除目的分支
    git fetch origin :bugFix 新建一個分支
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,870評論 1 26
  • 本文作者陳云峰,轉(zhuǎn)載請注明。 這篇文章記錄個人常用的一些命令,和記不住的一些命令,轉(zhuǎn)載了并不斷更新。 Git官網(wǎng) ...
    陳云峰閱讀 2,914評論 0 24
  • 前言 復(fù)習(xí)信息系統(tǒng)分析與設(shè)計有些無聊,無意中打開leetcode,看到上面新增了Go的支持,之前就有了解到這么語言...
    WilliamWei閱讀 527評論 0 1
  • 健腦 就是要用它 刻意訓(xùn)練它按照正確的方式訓(xùn)練,少踩些坑。而寫作就是就是倒逼輸入,表達清楚首先得自己明白,所以寫作...
    蟲兒吹閱讀 186評論 0 1
  • 兒時的小村落 道路曲折塵土飛 一步一個印兒 晌午的烈陽下 一群孩子追打向家去 家家戶戶冒著燒飯的煙 過去的房屋都破...
    許猛男與清新祥Xx閱讀 281評論 0 1

友情鏈接更多精彩內(nèi)容