git命令備忘

在工作之余遵绰,做一些備忘是很重要的,之前在新浪博客真的是坑爹椿访,吭哧吭哧幾個(gè)小時(shí)的東西一不小心就全軍覆沒...2017在簡(jiǎn)書重新開始啦...

git可以說是每一個(gè)程序員最基本的代碼管理工具,之前用SVN的都能深刻的感受到git的強(qiáng)大之處加酵,在第三方工具橫行的時(shí)代猪腕,有時(shí)候適當(dāng)?shù)氖褂靡恍┟顣?huì)是代碼管理更加便捷荣病。(注:git的第三方工具最常見的就是sourceTree,之前用的時(shí)候感覺太過啰嗦脖岛,不過簡(jiǎn)潔颊亮,后來改用gitX柴梆,一直沿用到現(xiàn)在终惑,文章末尾附百度云地址雹有,各位需要可以自行下載)。

說到git霸奕,大家通常會(huì)和SVN做對(duì)比,首先一個(gè)截然不懂的地方就是质帅,git有一個(gè)神器一般存在的暫存區(qū)。對(duì)于git嫉嘀,除了工作區(qū)(也就是你需要編輯的那個(gè)文件的區(qū)域)魄揉,版本庫中有一個(gè)神器的暫存區(qū),Git的版本庫里存了很多東西瓣俯,其中最重要的就是稱為stage(或者叫index)的暫存區(qū),還有Git為我們自動(dòng)創(chuàng)建的第一個(gè)分支master降铸,以及指向master的一個(gè)指針叫HEAD摇零。從我個(gè)人看來,暫存區(qū)可以統(tǒng)一工作區(qū)多次修改統(tǒng)一提交谅畅,從很大程度上緩解對(duì)于版本庫分支的復(fù)雜操作噪服,增加容錯(cuò)性。


工作區(qū)仇味,暫存區(qū)雹顺,master

一、本地管理

1. 提交操作

(1). 配置全局用戶名和郵箱 ?

配置用戶名 : git config --global user.name "ys"

配置郵箱 : ?git config --global user.email "ys@163.com"

獲取全局配置信息 : git config --list

(2). 創(chuàng)建倉庫

cd到你想要?jiǎng)?chuàng)建倉庫的地址嬉愧,運(yùn)行 ?git init ,你會(huì)發(fā)現(xiàn)根目錄下多了一個(gè).git的文件夾王财,那么你的本地倉庫就已經(jīng)建好了

(3). 忽略文件

有時(shí)候有些文件我們不想每次提交裕便,那么我們可以配置.gitignore,并把它放到根目錄闪金,忽略該文件的效果。eg:在里面添加 .DS_Store囱嫩,則不會(huì)對(duì)該文件的修改加入到工作區(qū)中漏设。有些已經(jīng)跑過的項(xiàng)目,你會(huì)發(fā)現(xiàn)你在.gitignore加入 xcuserdata/ 后郑口,UserInterfaceState.xcuserstate這個(gè)文件還是頻繁更新盾鳞,擾人至極瞻离,去掉這個(gè)文件的具體步驟如下:

到目錄下把這個(gè)文件直接干掉,然后commit這次修改推励,重啟Xcode就好了肉迫。

或者使用命令行:

git rm --cached 該文件路徑

git commit -m "Removed stupid file"

(4). 查看倉庫的當(dāng)前狀態(tài)

git status ? 查看當(dāng)前文件狀態(tài)

git diff ? 查看當(dāng)前改動(dòng)

git diff HEAD -- filename ?查看該文件工作區(qū)與當(dāng)前版本庫的差別

(5). 查看之前的所有l(wèi)og

git log ?查看詳細(xì)改動(dòng)

git log --pretty=oneline ? 簡(jiǎn)單方式查看版本改動(dòng)

(6). 從工作區(qū)添加到暫存區(qū)

git add filename.txt ? 添加單個(gè)文件

git add *.txt ? 添加所有txt文件

git add . ?添加所有文件

(7). 丟棄工作區(qū)中的修改

git checkout -- filename ? 丟棄對(duì)應(yīng)文件的修改

git checkout head . ?丟棄所有工作區(qū)的修改

(8). 將暫存的修改還原到工作區(qū)

git reset head ?或者 git reset head filename

(9). 將暫存區(qū)的改動(dòng)上傳到倉庫

git commit -m "commitSomething"

(10). 版本回歸

首先,Git必須知道當(dāng)前版本是哪個(gè)版本跌造,在Git中族购,用HEAD表示當(dāng)前版本,也就是最新的提交74399b158f9c557486c0f0074483e78f1184bb7c(注意我的提交ID和你的肯定不一樣)寝杖,上一個(gè)版本就是HEAD^,上上一個(gè)版本就是HEAD^^醉拓,當(dāng)然往上100個(gè)版本寫100個(gè)^比較容易數(shù)不過來收苏,所以寫成HEAD~100。

在這里鹿霸,介紹一下 --hard --soft --mix(默認(rèn))

git reset --mixed:此為默認(rèn)方式,不帶任何參數(shù)的git reset钻哩,即時(shí)這種方式肛冶,它回退到某個(gè)版本,只保留源碼珊肃,回退commit和index信息

git reset --soft:回退到某個(gè)版本,只回退了commit的信息伦乔,不會(huì)恢復(fù)到index file一級(jí)。如果還要提交爱只,直接commit即可

Git reset? --hard:徹底回退到某個(gè)版本招刹,本地的源碼也會(huì)變?yōu)樯弦粋€(gè)版本的內(nèi)容

git reset --hard HEAD^ ? 回滾到上一個(gè)版本

注:我來個(gè)擦,突然發(fā)現(xiàn)回滾錯(cuò)了蔗喂,天雷滾滾啊高帖,怎么回去呢?在沒關(guān)閉命令行的前提下乖阵,找到上次git log的日志预麸,找到對(duì)應(yīng)的版本號(hào),輸入git reset --hard 74399b158f9c557486c0f0074483e78f1184bb7c ?你會(huì)發(fā)現(xiàn)吏祸,我的天,最后一條數(shù)據(jù)又回來了蹈矮。哎呀鸣驱,如果你說我都已經(jīng)關(guān)了命令行了,別擔(dān)心踊东,你需要另外一個(gè)查看所有執(zhí)行過的命令的神奇的 git reflog,你會(huì)神奇的發(fā)現(xiàn)所有的版本號(hào)都能看得到再芋,于是你學(xué)會(huì)了上面的方式坚冀,成功回到人生巔峰。

2. 分支管理

(1). 創(chuàng)建分支

git checkout -b branchName (相當(dāng)與: git branch branchName ? ? ?git checkout branchName兩句命令)

git branch branchName b281e9cd7048a3ad70b5159ba47d4205eb476608 ?在指定節(jié)點(diǎn)創(chuàng)建分支

(2). 查看當(dāng)前所有分支以及狀態(tài)

git branch

(3). 合并分支

git merge branchName ? 用于合并指定分支到當(dāng)前分支

(4). 刪除分支

git branch -d branchName ?刪除指定分支

二联喘、遠(yuǎn)程管理

首先登陸github創(chuàng)建一個(gè)遠(yuǎn)程倉庫,獲取到遠(yuǎn)程倉庫的地址豁遭。(https://git.oschina.net/yang_shuai/gitTest.git)

(2). 克隆遠(yuǎn)程倉庫

git clone https://git.oschina.net/yang_shuai/gitTest.git

(2). 查看本地遠(yuǎn)程倉庫狀態(tài)

git remote -v

(3). 鏈接遠(yuǎn)程倉庫

git remote add origin https://git.oschina.net/yang_shuai/gitTest.git

(4). 清除遠(yuǎn)程倉庫

git remote rm origin

(5). 獲取遠(yuǎn)程庫數(shù)據(jù)單不合并

git fetch origin

(6). 將本地分支推送到遠(yuǎn)程分支并合并

git push origin master:master ?master為分支名蓖谢,前面的master為本地分支名,后面的master為遠(yuǎn)程分支名

(7). 獲取并合并遠(yuǎn)程分支的兩種方法

第一種: 使用git fetch 獲取到當(dāng)前最新的遠(yuǎn)程分支闪幽,然后使用git merge origin/master 進(jìn)行合并。

第二種:直接使用 git pull origin master:master 獲取并直接合并到對(duì)應(yīng)分支溉知。

針對(duì)兩種獲取合并方式腕够,個(gè)人更推崇第一種,首先可以知道隊(duì)友都改了些什么帚湘,另外可以準(zhǔn)確的進(jìn)行一對(duì)多的合并。

三捅厂、沖突解決

對(duì)于部分新手來說资柔,解決沖突可以說是頭疼的問題。目前有兩種解決沖突的方式建邓。


沖突后文件顯示

第一種:修改當(dāng)前文件官边,也就是說在你編輯的文件中直接修改然后git add . ,git commit -m “mergeok”注簿,手動(dòng)保留你想要的修改。

第二種:自動(dòng)解決沖突的工具捐晶,不過我還是不叫喜歡第一種,可控性強(qiáng)惑灵。

四、標(biāo)簽操作

git tag v1.0.0 (后面可加版本號(hào)在固定節(jié)點(diǎn)打上tag)

git tag ? 查看所有標(biāo)簽佩憾。

git tag -d v1.0.0 ?刪除名稱為v1.0.0的本地標(biāo)簽

git push origin :refs/tags/v1.0.0 ?刪除名稱為v1.0.0的遠(yuǎn)程倉庫標(biāo)簽


GitX鏈接: https://pan.baidu.com/s/1pKZayDX ? 密碼: txfj

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末妄帘,一起剝皮案震驚了整個(gè)濱河市池凄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌肿仑,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異割择,居然都是意外死亡萎河,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門玛歌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來擎椰,“玉大人支子,你說我怎么就攤上這事达舒。” “怎么了昨登?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵贯底,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我笙什,道長(zhǎng),這世上最難降的妖魔是什么得湘? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任淘正,我火速辦了婚禮,結(jié)果婚禮上鸿吆,老公的妹妹穿的比我還像新娘。我一直安慰自己蕉毯,他們只是感情好思犁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著棉磨,像睡著了一般学辱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上策泣,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音统抬,去河邊找鬼危队。 笑死,一個(gè)胖子當(dāng)著我的面吹牛交掏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播钱骂,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼愉烙!你這毒婦竟也來了解取?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤蔓肯,失蹤者是張志新(化名)和其女友劉穎振乏,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體慧邮,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡误澳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了忆谓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡米母,死狀恐怖毡琉,靈堂內(nèi)的尸體忽然破棺而出妙色,到底是詐尸還是另有隱情,我是刑警寧澤丐谋,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布煌珊,位于F島的核電站,受9級(jí)特大地震影響定庵,放射性物質(zhì)發(fā)生泄漏踪危。R本人自食惡果不足惜猪落,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一笨忌、第九天 我趴在偏房一處隱蔽的房頂上張望蓝仲。 院中可真熱鬧官疲,春花似錦、人聲如沸擎勘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掩完。三九已至,卻和暖如春欣硼,著一層夾襖步出監(jiān)牢的瞬間恶阴,已是汗流浹背诈胜。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工焦匈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留昵仅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓摔笤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親彰触。 傳聞我的和親對(duì)象是個(gè)殘疾皇子命辖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,661評(píng)論 9 163
  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,478評(píng)論 1 26
  • 本文為 Git教程的學(xué)習(xí)筆記,教程源自廖雪峰的博客咆疗。這是一個(gè)由淺入深母债,學(xué)完后能立刻上手的Git教程。另毡们,附上另一本...
    七弦桐語閱讀 6,247評(píng)論 5 47
  • 昨天 朋友圈被 我們?nèi)囊痪?“墮落才能長(zhǎng)久”刷屏了 其實(shí)事情的原由是 一個(gè)朋友的客戶離婚了,驚訝與我們的原因是:...
    淡淡27閱讀 241評(píng)論 0 0
  • 最近很忙登颓,壓力很大红氯,經(jīng)常熬夜 你不喜歡訴說,所以沒有人知道你有多忙痢甘,沒有人知道你壓力有多大,沒有人看出...
    小鬧心H閱讀 139評(píng)論 0 0