Git學(xué)習(xí)總結(jié)

作者:亞里士朱德
原文地址:http://yalishizhude.github.io/2015/09/16/git/

從svn到git

兩者都是優(yōu)秀的版本管理工具(giter請(qǐng)不要鄙視svner)

  • svn上手非常容易握童,操作簡(jiǎn)單姆怪。
  • git功能強(qiáng)大,但是要熟練使用分支不算容易澡绩。

git因?yàn)槭欠植际降幕遥云浜诵木褪欠种Вㄖ挥衜aster分支情況下和svn差不多?)肥卡,分支的意義在于溪掀,可以將項(xiàng)目代碼按照功能、模塊拆分成不同的分支步鉴。比如這個(gè)產(chǎn)品要加一個(gè)支付功能和一個(gè)登陸功能膨桥,可以創(chuàng)建兩個(gè)分支,交給不同的開發(fā)人員并行開發(fā)唠叛。登陸功能先開發(fā)完,測(cè)試無誤后合并改分支到master分支沮稚,master分支部署上線艺沼。支付功能雖然沒有開發(fā)完成,但是在另一條分支上蕴掏,所以產(chǎn)品上線和功能開發(fā)完全不受影響障般。這才是分布式開發(fā)的高效模式。

被git坑了一個(gè)星期之后決心把官方文檔看一下盛杰,結(jié)合實(shí)踐經(jīng)驗(yàn)進(jìn)行了整理挽荡。

新手常見問題

1.如何查看有哪些分支?

git branch -a

2.如何強(qiáng)制檢出/切換分支或分支指定文件即供?

git checkout <branch> [file] [-f]

強(qiáng)制更新定拟,以branch版本的代碼為主。

3.提交代碼出現(xiàn)沖突沖突怎么辦逗嫡?

hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

先切換分支青自,然后拉取分支上最新的代碼覆蓋到本地;

git pull

添加或者提交代碼驱证,解決沖突之后延窜。

git push

4.如何新建分支

git checkout -b <branch_name>

本地建立 branch 並立即切換到新分支;

git branch -m <new_name>

修改分支名稱抹锄。

5.從遠(yuǎn)程倉庫拉取代碼到本地倉庫逆瑞,并建立跟蹤關(guān)系

git clone http://xxx.git

或者

get clone git@xxx.git

然后

git checkout -b <本地新分支名> <對(duì)應(yīng)的遠(yuǎn)程分支名>

6.遠(yuǎn)程倉庫新建了一個(gè)分支荠藤,如何更新遠(yuǎn)程分支信息

git fetch <remote base>

7.如何在遠(yuǎn)程倉庫新建一個(gè)分支

git branch <branch name>

新建一個(gè)本地分支,按照正常流程提交完代碼后获高,推送到遠(yuǎn)程

git push <remote base> <local branch>:<remote branch>

實(shí)用指令

reset

git reset [file]

取消暫存

remote

查看遠(yuǎn)程倉庫名

git remote -v

查看遠(yuǎn)程倉庫url

git remote add <basename> <url>

新增遠(yuǎn)程倉庫

git remote show <basename>

查看遠(yuǎn)程倉庫詳細(xì)信息

git remote rename <old basename> <new basename>

重命名遠(yuǎn)程倉庫

pull

相當(dāng)于fetch和merge

push

git push [remote_branch] [local_branch]

推送本地倉庫代碼到遠(yuǎn)程倉庫哈肖,相當(dāng)于svn的commit

git push <remote base> [tag name]

推送本地標(biāo)簽到遠(yuǎn)程倉庫

git push <remote base> <remote branch>:<local branch>

將本地分支推送到指定的遠(yuǎn)程分支

git push <remote base> --delete <remote branch>

刪除遠(yuǎn)程分支

tag

查看標(biāo)簽(用來標(biāo)記標(biāo)志性的穩(wěn)定版本信息)

git tag -l '[expression]'

查看那符合正則表達(dá)式的

git tag -a <tag name> -m <comment>

添加帶注釋的標(biāo)簽

git tag -a <tag name> <md5>

對(duì)某個(gè)版本打標(biāo)簽

git tag [tag name]

如果沒有標(biāo)簽名,則為查看所有標(biāo)簽谋减。帶標(biāo)簽名則為新建標(biāo)簽

merge

git merge <branch name>

將其他分支合并到本分支

commit

git commit -a -m 'xx'

暫存并提交

branch

git branch

查看本地倉庫分支

git branch -v

查看本地倉庫分支最后一次提交情況

git branch -vv

查看分支跟蹤情況

git branch <branch name>

新建分支

git branch -d <branch name>

刪除分支

git branch [--merged | --no-merged]

查看已合并|未合并的本地倉庫分支

git branch -u <remote base>/<remote branch>

修改當(dāng)前跟蹤分支

commit

git commit -a -m 'xx'

提交并且暫存暫存的方法

checkout

git checkout -- [file]

恢復(fù)文件

git checkout -b [branchname] [tagname]

在特定的版本上創(chuàng)建一個(gè)新的分支并切換到此分支

git checkout -b [local branch] [remote base]/[remote branch]

將遠(yuǎn)程分支檢出到本地分支

git checkout --track <remote base>/<remote branch>

讓當(dāng)前分支跟蹤遠(yuǎn)程分支

git checkout --track <remote base>/<remote branch>
git checkout -b <local branch> <remote base>/<remote branch>

讓當(dāng)前分支跟蹤到遠(yuǎn)程分支牡彻。兩條命令作用基本一致,不同的是第二條命令可以重命名檢出的分支出爹。

rebase

git rebase [basebranch]

變基是將一系列提交按照原有次序依次應(yīng)用到另一分支上庄吼,而合并是把最終結(jié)果合在一起。

小技巧

查看配置

git config -1

設(shè)置git push 默認(rèn)

git config --global push.default current

設(shè)置別名

git config --global alias.<name> <commend>

我的設(shè)置:

git config --global alias.st status
git config --global alias.cm "commit -m"
git config --global alias.ph "push origin <local_repository>:<remote_repository>"

保存用戶名和密碼

對(duì)于http(s)協(xié)議严就,可以用下面命令臨時(shí)緩存

git config --global credential.helper cache

開啟linux緩存

git config --global credential.helper wincred

開啟windows緩存

對(duì)于ssh協(xié)議总寻,可以用ssh key,具體教程網(wǎng)上很多

忽略文件

默認(rèn)方法是在當(dāng)前項(xiàng)目目錄下創(chuàng)建一個(gè).gitignore文件梢为,如果需要忽略的文件已經(jīng)添加到版本庫中渐行,請(qǐng)先移除git rm --cached [file]不刪除文件,只移除追蹤铸董。

權(quán)威教程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末祟印,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子粟害,更是在濱河造成了極大的恐慌蕴忆,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悲幅,死亡現(xiàn)場(chǎng)離奇詭異套鹅,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)汰具,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門卓鹿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人留荔,你說我怎么就攤上這事吟孙。” “怎么了聚蝶?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵拔疚,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我既荚,道長(zhǎng)稚失,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任恰聘,我火速辦了婚禮句各,結(jié)果婚禮上吸占,老公的妹妹穿的比我還像新娘。我一直安慰自己凿宾,他們只是感情好矾屯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著初厚,像睡著了一般件蚕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上产禾,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天排作,我揣著相機(jī)與錄音,去河邊找鬼亚情。 笑死妄痪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的楞件。 我是一名探鬼主播衫生,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼土浸!你這毒婦竟也來了罪针?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤黄伊,失蹤者是張志新(化名)和其女友劉穎站故,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體毅舆,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年愈腾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了憋活。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡虱黄,死狀恐怖悦即,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情橱乱,我是刑警寧澤辜梳,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站泳叠,受9級(jí)特大地震影響作瞄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜危纫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一宗挥、第九天 我趴在偏房一處隱蔽的房頂上張望乌庶。 院中可真熱鬧,春花似錦契耿、人聲如沸瞒大。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽透敌。三九已至,卻和暖如春踢械,著一層夾襖步出監(jiān)牢的瞬間酗电,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工裸燎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留顾瞻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓德绿,卻偏偏與公主長(zhǎng)得像荷荤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子移稳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

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