程序員必備-在終端上使用git

我是一個ios開發(fā)灭贷,用的mac 電腦 比較推薦的 終端神器iTerm2和用來代替bash的oh-my-zsh妒潭,

1 配置簡單環(huán)境
oh-my-zsh 提供了強大的命令提示 使用 tab 就可以找到許多相關(guān)的命令 和 還可以使用別名 類似使用 一個命令的快捷方式 等等特別多好用的功能 詳情可以百度 下oh-my-zsh

(1)下載 安裝 zsh 跑一條簡單命令即可

   curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh  

使用curl 下載 并使用管道 sh install.sh 執(zhí)行腳本 重啟一下終端即可以看到你的iterm2 有些不同的變化了

F3015E98-B170-4915-97A4-E80092A9B21E.png

(2)配置別名簡化你的命令操作
舉個例子vim ~/.zshrc

687CD4B6-671A-4B4C-9E95-48365AFE9104.png

進入vim 敲擊鍵盤字母 a進入編輯模式 然后在后面復(fù)制 alias xxx='你要執(zhí)行的命令,然后點擊鍵盤esc 鍵盤輸入 :wq 保存退出 ,然后source .zshrc 或者重啟一下你的終端你的別名就生效了,然后你就只需要輸入別名就可以代替你那一長串復(fù)雜的命令,真是工作效率高了不少,上面的例子也可以看到 我只要輸入一個work 就可以代替了cd Desktop/qianluduobao/duoBao 通過pwd 查看當前目錄我的確可以達到想要的效果

12B17A79-DC32-4CB8-9571-154E98D092E5.png

(3)發(fā)掘更多強大的效果 ,百度輕松可以找到很多資料合住,也可以在http://ohmyz.sh 他的官網(wǎng)上面看到相關(guān)的文檔

2 開始使用命令
這里開始介紹一些工作常用到的許多命令

(1)查看性的git 命令
可以看到 上圖 ,oh-my-zsh 當他檢測到含有g(shù)itcofig的文件自動幫你表明當前projiect 所在的分支撒璧,簡單明了

git branch

查看你當前所在的分支


58D18EB0-252A-4F6B-81B6-10D3B577DEFC.png

git fetch

當你在 github 或者gitlab 的庫創(chuàng)建了分支 你可以通過git fetch 或者那個分支

git log

查看你本地的提交項透葛,當然commit id 是(即是 commit 后面跟著一串字符)非常有用的東西后面會說到


0C3E619C-81AF-40DF-96B8-84BA3F75A1FE.png

git status

查看你當前分支有沒有什么改動項 或者說一些文件是否受到git 管理等等

B03C3DEC-9E86-4E7E-89DE-A1F54140BC7B.png

2 功能性命令

git clone +url

這個將某個功能拉取到當前目錄

git add + 文件名

將某個文件加入到git 管理

git commit -am "提交說明"

將你全部的修改項都提交到本地的git 庫

.gitignore

這個是幫你把一些不想加進git 管理的一個配置文件,只要你在里面寫入對應(yīng)的文件名 或者 文件夾的路徑 就可以自動過濾掉 舉個例子

C4476B53-A7E8-4F35-B550-64DA6EBAB254.png

這里提交了一個vim 是一個 終端的文本編輯器卿樱,vim .gitignore 當你沒有這個文件時他會自動幫你創(chuàng)建好僚害,在用vim 編輯你想要過濾的文件,首先git status 看下你想要過濾的文件

368EA512-1404-4606-AF68-BAA5A876212A.png

這里看到了一些我不想要git 管理的文件 然后把他們路徑復(fù)制到 .gitignore 中


678C4AAB-729A-40A6-9279-FB48A0539926.png

在vim 中 敲下鍵盤的字母 a 進入編輯模式 可以看到下面有個 insert 然后復(fù)制想要過濾的路徑 然后敲下 鍵盤的esc 退出編輯模式 輸入 :wq 保存并退出

B03C3DEC-9E86-4E7E-89DE-A1F54140BC7B.png

在 git status 我們已經(jīng)看到 git 未跟蹤的目錄已經(jīng)沒有剛剛那個路徑了繁调,然后在 git add .gitignore 然后在 git commit -am 就可以了

git pull

拉取當前的分支git 遠程庫

git push

將本地提交項推送到遠程庫上面

git merge

當某些分支有提交項 我想把那個分支的提交項目和新增的文件合并到當前分支就可以使用 git merge萨蚕,舉個例子 我當前在 yydb 分支 想把master 的提交項合并過來


B7660E8C-C2C8-41E6-A3C4-F6AB98053790.png

我先切換到master (git checkout + 分支名) 然后git pull 拉取最新代碼 然后切回到y(tǒng)ydb分支

17579865-A28B-40F5-8C0A-A8B974522BA2.png

第一步切到master 是為了將master 更新到最新的代碼然后在合過來避免不必要的問題 ,然后直接執(zhí)行 git merge master 就可以了把master 代碼合并到當前分支了

FE108708-424A-4B6A-908D-FA9DFCE09DA3.png

這時候往往會因為當前分支一些修改的東西和想合并分支修改的東西不一致產(chǎn)生沖突 如圖的CONFLTCT靶草,看到這些不用急,如果是一些老司機可能直接用vim 就直接沖突全改了岳遥,而我vim 小白就用了sublime 這個文本工具了
我們可以看到CONFLTCT 后面接著文件沖突的路徑我們將projiect 拉進sublime 對著路徑一點點去處理就OK了 奕翔,在舉個例子

上面截圖可以看到Tool/DBInfoTool.m 這里路徑是有沖突的用sublime 找到這個文件


82556DC3-DB02-4B5F-85CC-BF42AB882CCD.png

可以看到所有的沖突都是<<<<<<HEAD 只有在commod +f 搜索帶有<<<<<HEAD
的字符串 修改即可

<<<<<<< HEAD
        NSDate *newDate = [DBInfoTool getStringDate:DBApplyTime];
=======
        NSDate *newDate = [DBInfoTool getStringDate: DBApplyTime];
>>>>>>> master

其中 <<<<<<< HEAD
        NSDate *newDate = [DBInfoTool getStringDate:DBApplyTime];
======= 
這個部分是你當前分支的
=======
        NSDate *newDate = [DBInfoTool getStringDate: DBApplyTime];
>>>>>>> master
這個則是你要合并的分支

你看需要保留那邊的代碼 改好去掉 <<<<<<< HEAD ======= >>>>>>> master
這些多余的字符就可以了

git reset

代碼回滾 如果你發(fā)現(xiàn)當前的代碼有問題,你就可以通過git 版本庫會退到你想要的版本浩蓉,這里就要用到之前的commit id 了

首先git log 查看commit id

F28D6E3B-0F8A-45E0-8A10-0AA22262BB23.png

好我現(xiàn)在想要回退到提交說明為派继,增加審核切換到域名灰度,并用時間判斷審核

那么就 git reset --hard commit id 即可妻往,頭指針已經(jīng)指向了響應(yīng)的版本


2ABF25A7-57CE-4F20-8715-0F96D36B73ED.png

如果你想要回到遠程庫的版本也可以這樣的

git reset --hard origin/當前分支名

3F2EDFFA-9969-4229-99BD-BB5E825004AB.png

比較常用到的git 命令基本都在這里了互艾,如果以后還會遇到一些別的也會更新在這里,如果有什么說錯的讯泣,也希望可以留言讓我更正一下

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纫普,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子好渠,更是在濱河造成了極大的恐慌昨稼,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拳锚,死亡現(xiàn)場離奇詭異假栓,居然都是意外死亡,警方通過查閱死者的電腦和手機霍掺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門匾荆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人杆烁,你說我怎么就攤上這事牙丽。” “怎么了兔魂?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵烤芦,是天一觀的道長。 經(jīng)常有香客問我析校,道長构罗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任智玻,我火速辦了婚禮遂唧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吊奢。我一直安慰自己蠢箩,他們只是感情好,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著谬泌,像睡著了一般滔韵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上掌实,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天陪蜻,我揣著相機與錄音,去河邊找鬼贱鼻。 笑死宴卖,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的邻悬。 我是一名探鬼主播症昏,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼父丰!你這毒婦竟也來了肝谭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤蛾扇,失蹤者是張志新(化名)和其女友劉穎攘烛,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體镀首,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡坟漱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了更哄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芋齿。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖成翩,靈堂內(nèi)的尸體忽然破棺而出觅捆,到底是詐尸還是另有隱情,我是刑警寧澤捕传,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站扩劝,受9級特大地震影響庸论,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜棒呛,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一聂示、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧簇秒,春花似錦鱼喉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锋边。三九已至,卻和暖如春编曼,著一層夾襖步出監(jiān)牢的瞬間豆巨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工掐场, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留往扔,地道東北人。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓熊户,卻偏偏與公主長得像萍膛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子嚷堡,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

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

  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,471評論 1 26
  • Git是目前最流行的版本管理系統(tǒng)蝗罗,也是最先進的分布式版本控制系統(tǒng)(distributed version cont...
    pro648閱讀 5,698評論 1 17
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,661評論 4 54
  • 畫面中關(guān)于你的訊息撲面而來,錯綜復(fù)雜的交織在一起瓶颠,那種“觸感”讓我體會到拿的起放不下的痛覺 我曾經(jīng)否定過拟赊,否定那個...
    Lawor_閱讀 355評論 0 3
  • 昨天有寶媽問正在哺乳期感冒了該怎么辦,甜蜜媽我今天找了一些方法粹淋,供各位寶媽參考吸祟。 其實對于一般感冒,注意多休息桃移,保...
    甜蜜辣媽閱讀 626評論 0 1