GIT筆記

<a >GIT筆記:</a>

1. 工作區(qū)(Working Directory)和版本庫(Repository)

Paste_Image.png

說明:

工作區(qū)就是創(chuàng)建倉庫的文件夾如(learngit文件夾就是一個工作區(qū))
版本庫就是工作區(qū)的隱藏目錄.git,版本庫中有暫存區(qū)(stage/index)和分支(master)
git add 實際是把文件添加到暫存區(qū)俄精, git commit 把暫存區(qū)的內(nèi)容提交到當前分支

2.創(chuàng)建版本庫

1創(chuàng)建git倉庫文件夾啼止,名為:learngit
$ mkdir learngit
2進入leadngit文件夾
$ cd learngit
3初始化git倉庫
 $ git init

3. 添加文件

1在leangit下添加一個readme.txt文件赘方,并編輯一些內(nèi)容
2添加到倉庫暫存區(qū)()在暫存區(qū) 文件會變綠
$ git add readme.txt
3提交readme.txt文件到當前分支, -m "提交說明"(只有進行 git add 后 go commit 命令才有效)
$ git commit -m "add readme.txt"

4. 修改文件

4.1 當文件在工作區(qū)時

1查看readme.txt文件內(nèi)容
$ cat readme.txt
2修改readme.txt文件內(nèi)容
vi readme.txt
3查看倉庫狀態(tài)
$ git status
4添加到倉庫暫存區(qū)烹卒,并提交到分支
$ git add readme.txt
$ git commit -m "modify readme.txt"

4.2 當文件在暫存區(qū)時

1修改文件內(nèi)容
vi ***
2添加到倉庫暫存區(qū)
$ git add readme.txt
3提交到分支
$ git commit -m "modify readme.txt at the stage"

5. 撤銷修改文件(未提交到分支)

5.1 當文件在工作區(qū)時

1執(zhí)行撤銷命令
$ git checkout -- readme.txt

5.2 當文件在暫存區(qū)時

1令文件回到工作區(qū)
$ git reset HEAD readme.txt

2執(zhí)行撤銷命令

$ git checkout -- readme.txt

6. 版本控制(無限次后悔)

說明:在Git中珊拼,HEAD表示當前版本盾计,HEAD^表示上一版本 HEAD^^表示上上一個版本
1查看提交日志輸出(完整版)

$ git log

2查看提交日志輸出(精簡版)

$ git log --pretty=noline

3回到上一版本

$ git reset --hard HEAD^

4回到指定版本(hard 后面添加版本號)

$ git reset --hard ea34578

5查看命令歷史

$ git reflog

7. 遠程倉庫(github)

7.1 添加到遠程庫

1在github上創(chuàng)建一個名為learngit的空倉庫
2在本地learngit倉庫下運行命令

$ git remote add origin git@github.com:iphone5solo/learngit.git

3把本地內(nèi)容推送到github遠程庫上(第一次push 參數(shù)帶 -u關(guān)聯(lián)遠程倉庫)

$ git push -u origin master

注意:如果在git push -u origin master時出現(xiàn)以下錯誤搞糕,證明電腦沒有修改遠程倉庫的公鑰钙皮,

Permission denied (publickey).fatal: Could not read from remote repository.
Please make sure you have the correct access rightsand the repository exists.

解決方法:
1在github上點擊Edit profile--> SSH and GPG keys --> new SSH key添加SHH公鑰
2打開id_rsa.pub文件(/Users/iphone5solo/.ssh/id.rsa.pub
3將id_rsa.pub文件內(nèi)容拷貝到key就可以了蜂科,title隨便填。

7.2 從遠程庫克隆

1在github上創(chuàng)建一個名為clonegit的倉庫
2使用命令克隆倉庫

$ git clone git@github.com:iphone5solo/clonegit```
####7.3 從遠程倉庫更新本地倉庫(已關(guān)聯(lián))
    $ git pull origin master
#8. 分支管理
####圖文說明:
master分支是一條線短条,git用master指向最新的提交导匣,在用HEAD指向master,以此才確定當前分支茸时,和提交點贡定。
![](http://upload-images.jianshu.io/upload_images/2926249-d10263e04bac1416.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
######1. 創(chuàng)建分支
當我們創(chuàng)建新的分支,例如newBranch,git就會新建一個指針newBranch,指向master相同的提交可都,再把HEAD指向newBranch,就表示當前分支在newBrach上
![](http://upload-images.jianshu.io/upload_images/2926249-9ff2b5327a11e2a7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
######2. 新分支的修改和提交
現(xiàn)在對工作區(qū)的修改和提交就是針對newBranch分支了缓待,比如新提交一次后,newBranch指針就向前移動一步渠牲,指向最新提交旋炒,而master指針指向不變。
![](http://upload-images.jianshu.io/upload_images/2926249-87c95d0c239a4be8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

######3. 分支的合并
把newBranch合并到master上签杈,直接把master指向newBranch的當前提交瘫镇,就完成了合并。
![](http://upload-images.jianshu.io/upload_images/2926249-90c5ce3d210a14d3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

######4. 合并完成刪除分支
刪除分支newBranch答姥,就剩下一個master分支
![](http://upload-images.jianshu.io/upload_images/2926249-6d1d4b20f274783f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
######5. 查看分支合并圖解
![](http://upload-images.jianshu.io/upload_images/2926249-6a6bb331c97a0329.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
<strong>關(guān)于分支的主要命令如下</strong></p>

<ul>
<li><p>查看分支</p>

<pre><code>$ git branch
</code></pre></li>
<li><p>創(chuàng)建<code>newBranch</code>分支</p>

<pre><code>$ git branch newBranch
</code></pre></li>
<li><p>切換<code>HEAD</code>指向<code>newBranch</code>分支</p>

<pre><code>$ git checkout newBranch
</code></pre></li>
<li><p>創(chuàng)建+切換分支</p>

<pre><code>$ git checkout -b newBranck
</code></pre></li>
<li><p>合并某分支到當前分支</p>

<pre><code>$ git merge newBranch
</code></pre></li>
<li><p>普通刪除<code>newBranch</code>分支</p>

<pre><code>$ git branch -d newBranch
</code></pre></li>
<li><p>強行刪除<code>newBranch</code>分支</p>

<pre><code>$ git branch -D newBranch
</code></pre></li>
<li><p>查看分支合并狀況</p>

<pre><code>$ git log --graph --pretty=oneline --abbrev-commit
</code></pre></li>
</ul>
<h3>9. 藏匿當前未提交的分支</h3>

<p>如: 當前在修改自己的分支<code>dev</code>,突然項目經(jīng)理要求修復一個bug-07</p>

<p>解決方法: </p>

<ol>

<li><p>藏匿當前<code>dev</code>分支的工作狀態(tài)</p>

<pre><code>$ git stash

</code></pre></li>

<li><p>新建一個<code>bug-07</code>分支</p>

<pre><code>$ git branch -b bug-07

</code></pre></li>

<li><p>修復bug并提交铣除,合并<code>bug-07</code>到<code>master</code>分支</p>

<pre><code>$ git commit -m "fix the bug-07"

$ git checkout master

$ git merge --no-ff -m "merge bug-07" bug-07

</code></pre></li>

<li><p>刪除<code>bug-07</code>分支</p>

<pre><code>$ git branch -d bug-07

</code></pre></li>

<li><p>查看當前<code>stash</code></p>

<pre><code>$ git stash list

</code></pre></li>

<li><p>恢復<code>dev</code>分支的工作狀態(tài),并刪除stash內(nèi)容</p>

<pre><code>$ git stash pop

</code></pre></li>

</ol>

<h3>10. 多人協(xié)作</h3>

<ul><li><p>查看遠程庫信息</p>

<pre><code>$ git remote</code></pre><ul>

<li><p>詳細查看遠程信息</p>

<p>```$ git remote -v```</p></li>

<li><p>推送分支到遠程庫</p>

<p>```$ git remote origin master```</p></li>

<li><p>抓取遠程分支</p>

<p>```$ git pull origin master```</p></li>

</ul></li>

</ul>

<h3>11. 標簽管理</h3>

<ul>

<li><p>創(chuàng)建一個標簽踢涌,默認為<code>HEAD</code>當前分支添加標簽</p>

<pre><code>$ git tag v1.0

</code></pre></li>

<li><p>為版本號為<code>e8b8ef6</code>添加<code>v2.0</code>標簽</p>

<pre><code>$ git tag v2.0 e8b8ef6

</code></pre></li>

<li><p>為版本號為<code>6cb5a9e</code>添加帶有說明的標簽通孽,<code>-a</code>指定標簽名,<code>-m</code>指定說明文字</p>

<pre><code>$ git tag -a v3.0 -m "version 0.2 released" 6cb5a9e

</code></pre></li>

<li><p>根據(jù)標簽查看指定分支</p>

<pre><code>$ git show v0.2

</code></pre></li>

<li><p>查看所有標簽</p>

<pre><code>$ git tag

</code></pre></li>

<li><p>刪除<code>v1.0</code>標簽</p>

<pre><code>$ git tag -d v1.0

</code></pre></li>

<li><p>把<code>v0.9</code>標簽推送到遠程</p>

<pre><code>$ git push origin v0.9

</code></pre></li>

<li><p>推送所有尚未推送到遠程的本地標簽</p>

<pre><code>$ git push origin --tags

</code></pre></li>

<li><p>刪除遠程標簽, 先刪除本地標簽,再刪除遠程標簽</p>

<pre><code>
$ git tag -d v0.9</br>
$ git push origin :refs/tags/v0.9

</code></pre></li>

</ul>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末睁壁,一起剝皮案震驚了整個濱河市背苦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌潘明,老刑警劉巖行剂,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異钳降,居然都是意外死亡厚宰,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铲觉,“玉大人澈蝙,你說我怎么就攤上這事∧煊模” “怎么了灯荧?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長盐杂。 經(jīng)常有香客問我逗载,道長,這世上最難降的妖魔是什么链烈? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任厉斟,我火速辦了婚禮,結(jié)果婚禮上强衡,老公的妹妹穿的比我還像新娘擦秽。我一直安慰自己,他們只是感情好食侮,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布号涯。 她就那樣靜靜地躺著,像睡著了一般锯七。 火紅的嫁衣襯著肌膚如雪链快。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天眉尸,我揣著相機與錄音域蜗,去河邊找鬼。 笑死噪猾,一個胖子當著我的面吹牛霉祸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播袱蜡,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼丝蹭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了坪蚁?” 一聲冷哼從身側(cè)響起奔穿,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎敏晤,沒想到半個月后贱田,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡嘴脾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年男摧,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡耗拓,死狀恐怖拇颅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情帆离,我是刑警寧澤蔬蕊,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布结澄,位于F島的核電站哥谷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏麻献。R本人自食惡果不足惜们妥,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望勉吻。 院中可真熱鬧监婶,春花似錦、人聲如沸齿桃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽短纵。三九已至带污,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間香到,已是汗流浹背鱼冀。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留悠就,地道東北人千绪。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像梗脾,于是被迫代替她去往敵國和親荸型。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355

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

  • 最近使用Git時感到有些生疏炸茧,所以利用晚上空余時間將廖雪峰Git教程重新系統(tǒng)的學習一邊并做了筆記瑞妇,溫故知新。 Gi...
    LannisZheng閱讀 665評論 1 3
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git宇立,從https:/...
    落魂灬閱讀 12,665評論 4 54
  • 一杯白開水踪宠,兩本曠世書。夜涼幽山中妈嘹,清風覓朝露柳琢。
    時間下的一場雨閱讀 217評論 0 0
  • 未曾立雪門前,仍受恩護如犢。 未曾負笈深山柬脸,仍得寶誨如海他去。 紅塵已別昨日非, 愛恨種種心頭壘倒堕。 得無明月共秋風...
    靈魂刀手閱讀 89評論 0 0