常用 git 命令

1、基本命令

  • git add .
  • git commit -m "first commit "
  • git push 遠程倉庫 本地分支:遠程分支
  • git pull 遠程倉庫 遠程分支:本地分支
  • git checkout -b "name" origin/release 創(chuàng)建并切換分支(以遠端origin為基準)
  • git branch 列出本地所有分支
  • git branch -r 列出遠端所有分支
  • git push origin --delete test 刪除遠程分支
  • git branch -d test 刪除本地分支
  • git branch -D test 如果有未提交的文件瞧毙,用它
  • git 2.23.0 以后版本救鲤,可以使用 git switch 切換分支忍坷,git restore path 丟棄暫存區(qū)修改
  • git remote update origin -p 同步本地分支與遠程分支

2奴饮、進階命令

  • git show // 顯示當前分支的提交歷史
  • git log // 顯示所有分支的提交歷史
  • git commit --amend //該命令會觸發(fā)vim編輯器薄坏,用于編輯提交信息(此命令只適合本地commit尚未提交到遠端燕偶,否則會有沖突)
  • git checkout -- filename // 取消工作區(qū)修改,即沒有git add .過的文件
  • git reset HEAD -- filename // 取消暫存區(qū)旺韭,即git add .過但沒commit過的文件氛谜,注意‘--’前后有空格
  • git reset HEAD~n // 撤銷本地倉庫當前HEAD之前n個版本的提交,暫存區(qū)會被干掉区端,工作區(qū)保留
  • git reset --hard HEAD~n //撤銷當前HEAD之前n個版本的提交值漫,暫存區(qū)和工作區(qū)都會被干掉
  • git merge branch-name //在當前分支合并branch-name分支
  • git rebase master // 在當前分支rebase master分支
  • git diff // 工作區(qū)和暫存區(qū)對比
  • git diff --staged // 暫存區(qū)和HEAD對比
  • git stash //切換分支前將工作區(qū)和暫存區(qū)(未git add 和 git add .的文件)放置臨時存儲區(qū),否則會帶到其他分支去
  • git stash pop // 取出臨時存儲區(qū)
  • git stash drop // 扔掉臨時存儲區(qū)
  • git stash --keep-index // 存儲沒有git add過的文件织盼,用于不想提交某個文件
  • git cherry-pick commitID //在當前分支上提取別的分支的某次提交
  • git reflog 查看HEAD指針位置杨何,git reset HEAD@{number} 回到某次提交
  • git tag -a "v2.8.0" -m "導入" 添加tag
  • git push origin v2.8.0 推送tag
  • git pull --rebase 避免多余的 commit 信息
  • git merge --squash branch_name 重新提交,一般用于往主分支上合并代碼沥邻,避免將功能分支的提交記錄合并到主分支上危虱,方便回退
  • git bisect start HEAD ffnc // git 調試 git bisect bad/good/reset
  • git shortlog -sn 查看各成員提交次數(shù)
  • git log --author="" 查看哪個人的提交
  • git grep "fe" 查看哪些文件包含 fe
  • git subtree 相關
// 命名遠端倉庫為 common
git remote add -f common git@code.aliyun.com:happy-life/hl-common-frontend.git
// 添加公共模塊 common 到 src/app/common 目錄下,并使用 common 倉庫的 prod 分支
git subtree add --prefix=src/app/common common prod --squash
// 從子倉庫拉取更新
git subtree pull --prefix=src/app/common common prod --squash
// 推送更新到子倉庫
git subtree push --prefix=src/app/common common prod

3、常見問題

  • 切分支時當前分支的修改被帶到另一個分支問題
    有兩種情況:1唐全、當前分支新建了文件(原分支沒有這個文件)埃跷,在切分支之前必須commit掉才不會帶到另一個分支;
    2邮利、當前分支修改了某個文件(原分支有這個文件)弥雹,在切分支之前有兩種選擇:1、可以使用stash命令緩存起來延届,這樣不會帶到另一個分支剪勿,當再切回該分支時,再用stash pop命令恢復緩存的修改方庭,這種方式使用的更多厕吉;2、commit掉
  • rebase 和 merge 的區(qū)別
    merge執(zhí)行一個合并二鳄,或者說一個融合赴涵。我們希望在當前分支上往前走,所以我們需要融合合并其他分支的工作订讼,從而放棄其他的分支。一般是在master分支上merge其他分支扇苞,出現(xiàn)沖突解決即可欺殿。
    rebase存在的價值是:對一個分支做“變基”操作,這意味著改變這個branch的初始commit鳖敷。它會在新的base上一個一個地運行這個分支上的所有commits.一般是在其他分支上rebase master分支脖苏,然后切回master分支,再做merge操作定踱。
  • 怎么解決沖突
    首先搞清楚沖突的是哪個文件棍潘,其次搞清楚沖突的雙方內容的位置,即哪個是本地的,哪個是遠程的亦歉。見下圖:


    解決沖突

    image.png

4恤浪、分支工作流

  • 多人協(xié)作


    多分支

    注意:此圖代表的是遠端分支情況!每次提交代碼前請git pull代碼肴楷,因為可能別人修改過遠端branch分支

  • 個人工作流程
    比如你要做個新功能水由,則基于 master 分支創(chuàng)建 feature 分支,然后在本地執(zhí)行git checkout -b dev 赛蔫,在dev分支上開發(fā)砂客,當dev分支的功能完成后,切回本地 feature 分支呵恢,在 feature 分支上執(zhí)行git merge dev操作鞠值,然后提測 feature 分支。測試通過后渗钉,在master 分支上進行合并操作
  • 分支管理


    分支管理

5彤恶、可視化工具 sourceTree

用SourceTree輕松Git項目圖解
SourceTree 免登錄跳過初始設置
SourceTree通過配置SSH來鏈接GitLab

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市晌姚,隨后出現(xiàn)的幾起案子粤剧,更是在濱河造成了極大的恐慌,老刑警劉巖挥唠,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抵恋,死亡現(xiàn)場離奇詭異,居然都是意外死亡宝磨,警方通過查閱死者的電腦和手機弧关,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來唤锉,“玉大人世囊,你說我怎么就攤上這事×椋” “怎么了株憾?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長晒衩。 經(jīng)常有香客問我嗤瞎,道長,這世上最難降的妖魔是什么听系? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任贝奇,我火速辦了婚禮,結果婚禮上靠胜,老公的妹妹穿的比我還像新娘掉瞳。我一直安慰自己毕源,他們只是感情好,可當我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布陕习。 她就那樣靜靜地躺著霎褐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪衡查。 梳的紋絲不亂的頭發(fā)上瘩欺,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天,我揣著相機與錄音拌牲,去河邊找鬼俱饿。 笑死,一個胖子當著我的面吹牛塌忽,可吹牛的內容都是我干的拍埠。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼土居,長吁一口氣:“原來是場噩夢啊……” “哼枣购!你這毒婦竟也來了?” 一聲冷哼從身側響起擦耀,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤棉圈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后眷蜓,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體分瘾,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年吁系,在試婚紗的時候發(fā)現(xiàn)自己被綠了德召。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡汽纤,死狀恐怖上岗,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情蕴坪,我是刑警寧澤肴掷,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站背传,受9級特大地震影響捆等,放射性物質發(fā)生泄漏。R本人自食惡果不足惜续室,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谒养。 院中可真熱鬧挺狰,春花似錦明郭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瞳购,卻和暖如春话侄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背学赛。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工年堆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盏浇。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓变丧,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绢掰。 傳聞我的和親對象是個殘疾皇子痒蓬,可洞房花燭夜當晚...
    茶點故事閱讀 45,781評論 2 361