Git 常用命令

  • 查看分支:
    $ git branch 該命令會類出當(dāng)先項目中的所有分支信息榨咐,其中以*開頭的表示當(dāng)前所在的分支溉贿。參數(shù)-r列出遠(yuǎn)程倉庫中的分支爆班,而-a則遠(yuǎn)程與本地倉庫的全部分支璧函。
  • 創(chuàng)建新分支:
    $ git branch testing 創(chuàng)建一個名為testing的分支
  • 切換分支:
    $ git checkout teting 切換到testing分支上泣特。通過向該命令傳遞一個-b參數(shù)回论,可以實現(xiàn)創(chuàng)建并切換分支的功能散罕。
  • 合并分支:
    $ git merge hotfix 將hotfix分支合并到當(dāng)前分支當(dāng)中去
  • 刪除分支:
    $ git branch -d hotfix 刪除分支hotfix,-d選項只能刪除已經(jīng)被當(dāng)前分支所合并過的分支,而要強制刪除沒有被合并過的分支傀蓉,可以使用-D欧漱。
  • 重命名分支:
    $ git branch -m oldbranch newbranch -M用來強制重命名,如newbranch已經(jīng)存在的時候葬燎。
  • 查看分支之間的不同:
    $ git diff branchName 查看當(dāng)前分支與branchName分支之間的差異误甚,也可以使用:$ git diff branch1 branch2 來比較這1和2分支之間的差異,當(dāng)使用第一種方式比較時谱净,如果當(dāng)前工作目錄中存在與branchName同名的文件窑邦,系統(tǒng)則會提示錯誤,要是指明要比較的是文件還是分支壕探,如果比較分支冈钦,可以進(jìn)入.git中進(jìn)行比較或切換分支,如果是>比較文件李请,則使用$ git diff -- fileName命令。
    $ git diff <branchA>:<fileA> <branchB>:<fileB>
    $ git ls-tree -r branch 列出所有的樹對象
  • 合并沖突:
    如果在不同的分支中都修改了同一個文件的同一部分,Git 就無法干凈地把兩者合到一起(譯注:邏輯上說月培,這種問題只能由人來裁決。)
    任何包含未解決沖突的文件都會以未合并(unmerged)的狀態(tài)列出。Git 會在有沖突的文件里加入標(biāo)準(zhǔn)的沖突解決標(biāo)記,可以通過它們來手工定位并解決這些沖突茸歧。
    在解決了所有文件里的所有沖突后软瞎,運行 git add 將把它們標(biāo)記為已解決狀態(tài)(譯注:實際上就是來一次快照保存到暫存區(qū)域魔慷。)蜻展。因為一旦暫存,就表示沖突已經(jīng)解決。如
    果你想用一個有圖形界面的工具來解決這些問題,不妨運行 git mergetool,它會調(diào)用一個可視化的合并工具并引導(dǎo)你解決所有沖突。
    要從該清單中篩選出你已經(jīng)(或尚未)與當(dāng)前分支合并的分支,可以用 --merge 和 --no-merged 選項(Git 1.5.6 以上版本)告丢。比如用 git branch --merge 查看哪些分支>已被并入當(dāng)前分支(譯注:也就是說哪些分支是當(dāng)前分支的直接上游照捡。)
  • 遠(yuǎn)程分支:
    遠(yuǎn)程分支是對遠(yuǎn)程倉庫分支的索引。它們是一些無法移動的本地分支赢赊,只有在Git進(jìn)行網(wǎng)絡(luò)交互時才會更新寥殖。我們用(遠(yuǎn)程倉庫名)/(分支名)來表示遠(yuǎn)程分支嚼贡。比如想查看上次>同origin倉庫通訊時master的樣子熏纯,就應(yīng)該查看origin/master分支。
  • 推送本地分支:
    $ git push (遠(yuǎn)程倉庫名字) (分支名) 如:$ git push orgin serverfix 該命令會將本地serverfix分支推送到origin遠(yuǎn)程倉庫的serverfix分支中去粤策,也可以使用命令 $ git push origin serverfix:serferfix實現(xiàn)同樣的效果樟澜,可以將第二個serverfix更改為其它名字來指定要將該本地分支推送到遠(yuǎn)程倉庫中的的指定分支中去,如果不存在,則會在遠(yuǎn)程倉庫中新建分支秩贰。
  • 獲取遠(yuǎn)程分支:
    在使用git clone命令從遠(yuǎn)程服務(wù)器克隆Git倉庫時霹俺,只是將遠(yuǎn)程倉庫當(dāng)前分支的內(nèi)容克隆到本地,要是克隆其他分支的內(nèi)容毒费,需要使用下面命令:可通過git branch -r命令來
  • 查看想要獲取的遠(yuǎn)程倉庫中的分支丙唧。
    $ git fetch origin 值得注意的是,在 fetch 操作下載好新的遠(yuǎn)程分支之后觅玻,你仍然無法在本地編輯該遠(yuǎn)程倉庫中的分支想际。
  • 如果要把該內(nèi)容合并到當(dāng)前分支,可以運行 git merge origin/serverfix溪厘。如果想要一份自己的 serverfix 來開發(fā)胡本,可以在遠(yuǎn)程分支的基礎(chǔ)上分化出一個新的分支來:
    $ git checkout -b serverfix origin/serverfix
    這會切換到新建的 serverfix 本地分支,其內(nèi)容同遠(yuǎn)程分支 origin/serverfix 一致畸悬,這樣你就可以在里面繼續(xù)開發(fā)了侧甫。
  • Git pull:
    從服務(wù)器的倉庫中獲取代碼,和本地代碼合并。(與服務(wù)器交互,從服務(wù)器上下載最新代碼瘸右,等同于: Git fetch + Git merge)。 從其它的版本庫(既可以是遠(yuǎn)程的也可以是本地的)將代碼更新到本地僻爽,例如:“git pull origin master ”就是將origin這個版本庫的代碼更新到本地的master主分支。
    git pull可以從任意一個git庫獲取某個分支的內(nèi)容贾惦。用法如下:
    git pull username@ipaddr: 遠(yuǎn)端repository名 遠(yuǎn)端分支名:本地分支名胸梆。這條命令將從遠(yuǎn)端git庫的遠(yuǎn)端分支名獲取到本地git庫的一個本地分支中。其中须板,如果不寫本地分支名碰镜,則默認(rèn)pull到本地當(dāng)前分支。
    需要注意的是习瑰,git pull也可以用來合并分支绪颖。 和git merge的作用相同。 因此甜奄,如果你的本地分支已經(jīng)有內(nèi)容柠横,則git pull會合并這些文件,如果有沖突會報警课兄。
  • Git push
    將本地commit的代碼更新到遠(yuǎn)程版本庫中牍氛,例如 “git push origin”就會將本地的代碼更新到名為orgin的遠(yuǎn)程版本庫中。
    git push和git pull正好想反烟阐,是將本地某個分支的內(nèi)容提交到遠(yuǎn)端某個分支上搬俊。用法: git pushusername@ipaddr: 遠(yuǎn)端repository名 本地分支名:遠(yuǎn)端分支名紊扬。這條命令將本地git庫的一個本地分支push到遠(yuǎn)端git庫的遠(yuǎn)端分支名中。
    需要格外注意的是唉擂,git push好像不會自動合并文件餐屎。因此,如果git push時楔敌,發(fā)生了沖突啤挎,就會被后push的文件內(nèi)容強行覆蓋驻谆,而且沒有什么提示卵凑。 這在合作開發(fā)時是>很危險的事情。

git-clone命令只要碰到類似下面格式的遠(yuǎn)程倉庫地址胜臊,都會被認(rèn)為地址是符合SSH協(xié)議的: 賬戶@IP:工作目錄

git checkout -b [分支名] [遠(yuǎn)程名]/[分支名]

  • 如果你有 1.6.2 以上版本的 Git勺卢,還可以用 --track 選項簡化
    $ git checkout --track origin/serverfix
  • 刪除遠(yuǎn)程分支:
    git push [遠(yuǎn)程名] :[分支名]

git pull 遠(yuǎn)程倉庫名 遠(yuǎn)程分支:本地分支
git push 遠(yuǎn)程倉庫名 遠(yuǎn)程分支:本地分支
git checkout -b 分支名 遠(yuǎn)程倉庫名/分支名

  • 我們在將Develop分支發(fā)布到Master分支時,可能采用如下的命令:
  # 切換到Master分支
  git checkout master
  # 對Develop分支進(jìn)行合并
  git merge --no-ff develop
         # 將develop分支的代碼拉倒本地master以后 提交到遠(yuǎn)程master
         git push origin master
  • 合并本地的代碼到服務(wù)器上相同的倉庫
git init
git remote add <ssh地址>   例:
git remote add origin https://github.com/username/projectName.git

合并用到的 解決錯誤方法

git pull origin branchname --allow-unrelated-histories 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末象对,一起剝皮案震驚了整個濱河市黑忱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌勒魔,老刑警劉巖甫煞,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異冠绢,居然都是意外死亡抚吠,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門弟胀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來楷力,“玉大人,你說我怎么就攤上這事孵户∠舫” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵夏哭,是天一觀的道長检柬。 經(jīng)常有香客問我,道長竖配,這世上最難降的妖魔是什么何址? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮械念,結(jié)果婚禮上头朱,老公的妹妹穿的比我還像新娘。我一直安慰自己龄减,他們只是感情好项钮,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般烁巫。 火紅的嫁衣襯著肌膚如雪署隘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天亚隙,我揣著相機與錄音磁餐,去河邊找鬼。 笑死阿弃,一個胖子當(dāng)著我的面吹牛诊霹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播渣淳,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼脾还,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了入愧?” 一聲冷哼從身側(cè)響起鄙漏,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎棺蛛,沒想到半個月后怔蚌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡旁赊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年桦踊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片彤恶。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡钞钙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出声离,到底是詐尸還是另有隱情芒炼,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布术徊,位于F島的核電站本刽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏赠涮。R本人自食惡果不足惜子寓,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望笋除。 院中可真熱鬧斜友,春花似錦、人聲如沸垃它。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至洛史,卻和暖如春惯殊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背也殖。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工土思, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人忆嗜。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓己儒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親霎褐。 傳聞我的和親對象是個殘疾皇子址愿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容