我常用的 git 操作命令行整理

git 常用操作

  • git init 為目錄初始化 git粗梭,初始化后就可以使用 git 了。
  • git clone 通過 HTTP 或者 SSH 將代碼從服務(wù)器克隆到本地换怖。
  • git status 查看當(dāng)前文件狀態(tài)啄糙。
  • git add 添加文件到暫存區(qū)
  • git commit -m 'msg' 提交帶有 commit 信息的代碼(本地提交)
  • git pull 拉取遠(yuǎn)程分支的代碼
  • git push 將本地提交的改動(dòng)推送到服務(wù)器。
  • git remote 查看遠(yuǎn)程倉庫信息
  • git checkout 檢出新分支
  • git merge 將其他分支上的修改合并到當(dāng)前分支上葵袭。
  • git rebase 將其他分支上的修改變基到當(dāng)前分支上。
  • git reset –-soft commit_id:回退到某個(gè)版本乖菱,只回退了commit的信息坡锡,不會(huì)恢復(fù)到index file一級。如果還要提交窒所,直接commit即可鹉勒;
  • git reset -–hard commit_id:徹底回退到某個(gè)版本,本地的源碼也會(huì)變?yōu)樯弦粋€(gè)版本的內(nèi)容吵取,撤銷的commit中所包含的更改被沖掉禽额;
  • git checkout -b 本地分支名 origin/遠(yuǎn)程分支名 拉取遠(yuǎn)程分支
  • git checkout --track origin/serverfix 直接拉取遠(yuǎn)程分支到本地
  • git reflog 查看git操作記錄(不止是 commit 記錄)

遇到過的問題

http 和 ssh 的區(qū)別

  • HTTPS:可以直接 clone 項(xiàng)目,但是在 push 的時(shí)候需要驗(yàn)證用戶名和密碼皮官。
  • SSH:clone 的項(xiàng)目你必須是擁有者或者管理員脯倒,而且需要在 clone 前添加 SSH Key。SSH 在 push 的時(shí)候捺氢,是不需要輸入用戶名的藻丢,如果配置 SSH key 的時(shí)候設(shè)置了密碼,則需要輸入密碼的摄乒,否則直接是不需要輸入密碼的悠反。

merge 和 rebase 的區(qū)別

merge 是將多條分支合并到一起,而 rebase 是當(dāng)前分支的節(jié)點(diǎn)移動(dòng)到另一個(gè)分支的最后一個(gè)節(jié)點(diǎn)之后馍佑≌瘢看兩個(gè)圖片:

[站外圖片上傳中...(image-a749be-1554727407214)]
[站外圖片上傳中...(image-84536a-1554727407214)]

更多內(nèi)容可以參考 An Introduction to Git Merge and Git Rebase: What They Do and When to Use Them 這篇文章。

修改 .gitignore 后清理緩存

如果項(xiàng)目原本就有 .gitignore 文件挤茄,現(xiàn)在想多 ignore 一些文件如叼,在修改完 .gitignore 文件后發(fā)現(xiàn)服務(wù)器上還是有這些文件冰木。怎么辦穷劈?這時(shí)候需要手動(dòng)清理到這些文件。

$ git rm -r --cached 文件/文件夾名字

手賤刪了遠(yuǎn)程和本地分支怎么辦踊沸?

可以通過之前的 git commit 信息來恢復(fù)分支數(shù)據(jù)歇终,具體操作參考
git 誤刪分支恢復(fù)方法

如何強(qiáng)制推送?

如果服務(wù)器的文件出現(xiàn)了一些奇怪的提交逼龟,想完全用本地項(xiàng)目替換服務(wù)器項(xiàng)目怎么搞评凝?

$ git push --force origin

git 命令設(shè)置別名

每次敲 git 命令的 checkout、commit腺律、status 是不是很煩奕短?可以配置別名來解決這種痛苦宜肉。

$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch

設(shè)置別名后你就可以這么寫了:

$ git co
$ git ci
$ git br

是不是少敲了幾個(gè)字母?
具體操作可以看下配置別名 - 廖雪峰的官方網(wǎng)站中的操作翎碑。

git 賬戶密碼修改

有時(shí)候密碼改了怎么配置谬返?很簡單,使用 git config 命令就好日杈。

$ git config global user.name 'violetjack'
$ git config global user.password '********'

git 同時(shí)添加多個(gè) remote

$ git remote add <主機(jī)名> <網(wǎng)址>

git 修改提交過的 commit 消息

對上一次的提交做修改可以用以下命令:

git commit --amend

這樣就可以進(jìn)入 vim 去修改最后一條 commit 信息了遣铝。

git 查看修改代碼量

$ git log --author="violetjack" --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 }' -

這樣可以輸出你修改的代碼信息,如:

added lines: 15481, removed lines: 6672, total lines: 8809

這玩意在年終統(tǒng)計(jì) KPI 的時(shí)候可以用一發(fā)莉擒。

參考資料

另外酿炸,在寫這篇文章的時(shí)候找到了一些不錯(cuò)的文章,也一并貼出來了涨冀。

最后

這里記錄下一些我日常工作中遇到過的 git 操作命令填硕,便于自己之后查閱。也希望能幫助到同樣有類似問題的朋友蝇裤。
本文中如有任何問題還請留言指正廷支,和歡迎和我交流。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末栓辜,一起剝皮案震驚了整個(gè)濱河市恋拍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌藕甩,老刑警劉巖施敢,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異狭莱,居然都是意外死亡僵娃,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門腋妙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來默怨,“玉大人,你說我怎么就攤上這事骤素〕锥茫” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵济竹,是天一觀的道長痕檬。 經(jīng)常有香客問我,道長送浊,這世上最難降的妖魔是什么梦谜? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上唁桩,老公的妹妹穿的比我還像新娘闭树。我一直安慰自己,他們只是感情好荒澡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布蔼啦。 她就那樣靜靜地躺著,像睡著了一般仰猖。 火紅的嫁衣襯著肌膚如雪捏肢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天饥侵,我揣著相機(jī)與錄音鸵赫,去河邊找鬼。 笑死躏升,一個(gè)胖子當(dāng)著我的面吹牛辩棒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播膨疏,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼一睁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了佃却?” 一聲冷哼從身側(cè)響起者吁,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎饲帅,沒想到半個(gè)月后复凳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡灶泵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年育八,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赦邻。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡髓棋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惶洲,到底是詐尸還是另有隱情按声,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布湃鹊,位于F島的核電站儒喊,受9級特大地震影響镣奋,放射性物質(zhì)發(fā)生泄漏币呵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望余赢。 院中可真熱鬧芯义,春花似錦、人聲如沸妻柒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽举塔。三九已至绑警,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間央渣,已是汗流浹背计盒。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芽丹,地道東北人北启。 一個(gè)月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像拔第,于是被迫代替她去往敵國和親咕村。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

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

  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,486評論 1 26
  • 配置 首先是配置帳號信息 ssh -T git@github.com#登陸github 修改項(xiàng)目中的個(gè)人信息 1 ...
    rochuan閱讀 724評論 1 1
  • Add & Commit git init 初始化一個(gè) Git 倉庫(repository)蚊俺,即把當(dāng)前所在目錄變成...
    冬絮閱讀 4,833評論 0 9
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,661評論 9 163
  • 文/米筱禾 很多年前泳猬,奶奶還在世的時(shí)候肩钠,有一次我去看她。奶奶拉著我站到窗邊暂殖,指著下面的舊書市對我說:“我老兒子就在...
    筱禾醬閱讀 371評論 2 5