git相關(guān)實戰(zhàn)技巧

在工作之中使用git友酱,除了常用的clone,add柔纵,commit缔杉,push,fetch搁料,pull或详,merge等還會經(jīng)常出現(xiàn)一些其他需要解決的問題,現(xiàn)在將其總結(jié)下郭计。

可以在我的博客http://haiyangjiajian.com/交流更多相關(guān)內(nèi)容霸琴。

1. 忘記添加.gitignore

GIT新手最容易犯的一個錯誤就是沒有添加.gitignore,而把不該上傳的東西上傳了昭伸, 而GIT老手有時會因為在規(guī)則里面寫了個.*而導(dǎo)致.gitignore沒有加入到版本控制當(dāng)中梧乘, 事后才發(fā)現(xiàn),但此時項目中已充斥了“垃圾”庐杨。

此時項目管理者才追悔莫及宋下,修改.gitignore并提交到版本控制當(dāng)中嗡善。 但大錯已鑄成,新添的.gitignore不會影響已經(jīng)加入到項目中的文件学歧,GIT老手此時也可能沒有什么好辦法, 只能把不該有的東西手動刪除掉各吨,再重新提交枝笨。但更麻煩的是,這些“垃圾”可能還有用揭蜒, 如Java項目中依賴的一些*.jar庫文件横浑,直接刪了會出問題,要在修好項目后重新加回來屉更。 如果只有幾個文件還好徙融,如果成百上千,這樣操作瑰谜,一天都不用干別的了欺冀。

但問題總會有聰明辦法解決。GIT中用git rm --cached xxx可以在不動項目當(dāng)前工作空間的情況下萨脑, 將文件從當(dāng)前(未提交)版本中移除隐轩。如此而來簡單方法就出來了:

git rm -r --cached .
git add .
git commit -m ".gitignore is now working"

參照這里

2. git 取消push

方法1:

  1. git reset --hard HEAD~1
  2. 然后再使用git push origin "your branch name" --force將本次變更強行推送至服務(wù)器。這樣在服務(wù)器上的最后一次錯誤提交也徹底消失了渤早。

方法2:

  1. 在本地git revert职车,覆蓋掉上一次的commit
  2. git push origin "your branch name"

3. git reflog

git reflog/git log -g記錄每次修改head的操作,可以查看所有歷史修改記錄,然后通過git reset命令進行恢復(fù)

4. git merge和git rebase

如果需要merge遠程分支的東西鹊杖,盡量不要用git pull悴灵。 可以使用:

git fetch origin

git rebase origin/master // 可以理解為:將服務(wù)器master分支映射到本地的一個臨時

//分支上,然后將本地分支上的變化合并到這個臨時分支骂蓖,然后再用這個臨時分支初始化本地分

//支

5. git stash

git stash 將未commit改變緩存,不保存新加的文件

git stash list 展示棧列表

git stash apply {stash@{2}} 應(yīng)用某次棧中的內(nèi)容

git stash pop 應(yīng)用棧頂內(nèi)容并彈棧

git stash clear 清空隊列

6. git revert和git reset

git revert是用一個新的提交取消掉了之前的一個錯誤提交

git reset取消掉最近一次commit后add的

git reset []回到那一次commit积瞒,并且將撤銷掉的文件的提交恢復(fù)成未提交的狀態(tài)

git reset --hard 回到那一次commit,所有過程中的文件都沒了

7. git自動補全

參見github

8. 單獨統(tǒng)計每個人的增刪行數(shù)

git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涯竟,一起剝皮案震驚了整個濱河市赡鲜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌庐船,老刑警劉巖银酬,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異筐钟,居然都是意外死亡揩瞪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門篓冲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來李破,“玉大人宠哄,你說我怎么就攤上這事∴凸ィ” “怎么了毛嫉?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長妇菱。 經(jīng)常有香客問我承粤,道長,這世上最難降的妖魔是什么闯团? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任辛臊,我火速辦了婚禮,結(jié)果婚禮上房交,老公的妹妹穿的比我還像新娘彻舰。我一直安慰自己,他們只是感情好候味,可當(dāng)我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布刃唤。 她就那樣靜靜地躺著,像睡著了一般负溪。 火紅的嫁衣襯著肌膚如雪透揣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天川抡,我揣著相機與錄音辐真,去河邊找鬼。 笑死崖堤,一個胖子當(dāng)著我的面吹牛侍咱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播密幔,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼楔脯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了胯甩?” 一聲冷哼從身側(cè)響起昧廷,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎偎箫,沒想到半個月后木柬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡淹办,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年眉枕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡速挑,死狀恐怖谤牡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情姥宝,我是刑警寧澤翅萤,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站腊满,受9級特大地震影響断序,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜糜烹,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望漱凝。 院中可真熱鬧疮蹦,春花似錦、人聲如沸茸炒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽壁公。三九已至感论,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間紊册,已是汗流浹背比肄。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留囊陡,地道東北人芳绩。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像撞反,于是被迫代替她去往敵國和親妥色。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,876評論 2 361

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