Git入門教程

如果文章對你有幫助,請點喜歡并關注,這將是我最大的動力。

git中文指南
這里有非常詳細的git介紹,下面是一個簡單的流程

1. 下載

1.msysgit下載
2.git圖形界面
ps:如果下載緩慢有可能被墻,可以使用迅雷下載,或者下載個vpn

2. git的前期準備

這里說一下git的簡單思路。要使用代碼的版本控制和多人協作,首先有一個git庫,他被放在服務器上,當你要使用時就需要把這個git庫下載到本地,本地操作完之后,會先把文件暫存,將文件放到暫存區域。然后提交到本地庫。最后通過本地與服務器建立聯系來把本地庫的文件推送到服務器的git庫里,這樣就實現了本地與遠程的同步。

1.注冊

github官網

2.new repository

新建一個項目


repostory.png

會出現如上圖頁面,然后跟著他的要求一步步操作:

  1. 在本地建立一個文件夾,名為你的項目名
  2. 在里面創建一個readme.md文件
  3. 右鍵該文件夾,選中git Bash,依次輸入
git add README.md ---------------追蹤README.md文件,放置到暫存區
git commit -m "first commit" --------------該文件被提交到本地庫
git remote add origin git@github.com:sunbrother/aaa.git ------將倉庫連接到遠程服務器
git push -u origin master ----------------------改動提交到遠端服務器(并且是master分支)```

當然,如果你已經有一個遠程倉庫想將他們克隆到本地,只需執行
`git clone git@github.com:sunOpar/myjava.git ------例子`
 ####3.ssh key設置
有兩種方法
#####1.利用工具
1. 生成ssh key打開PuTTYgen
![PuTTYgen.png](http://upload-images.jianshu.io/upload_images/656716-95215134aaa83724.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如圖,點擊Generate生成ssh key(在生成過程中滑動鼠標)生成好之后會出現如圖
![key.png](http://upload-images.jianshu.io/upload_images/656716-3951c871a7699994.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
將上圖的public key復制好
2. 建立聯系

進入你的github賬號→settings→SSH keys→Add SSH key
把你復制好的public key黏貼進去
此時順便把private key保存一下。(這里公鑰和私鑰的關系相當于鎖和鑰匙的關系)
打開pageant,點擊Add Key把你保存好的私鑰添加進去。
**完成**
#####2.通過命令行
1. 在命令行中輸入`ssh-keygen -t rsa -C "your_emali"`
2. 此時可以設置你的密碼,也可以一路回車過去
3. 此時會出現你的公私鑰路徑,進入找到.pub打開并復制
4. 進入你的github賬號→settings→SSH keys→Add SSH key,
5. 把你復制好的public key黏貼進去
6. 結束(完美)

###3. git的使用

####git文件的修改

1. 打開本地文件夾里的readme進行修改
2. 此時在git bash里輸入 git status 發現文件被修改,如圖
![modified.png](http://upload-images.jianshu.io/upload_images/656716-64d892b34dbb0176.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3. 然后在命令框中依次輸入
 ```git add <fileName/.> ---------------追蹤改動并放到暫存區
git commit -m "修改文件"(雙引號里面是你每一次修改的注釋)-----改動提交到本地庫
git push -u origin master -----------改動提交到遠端repository```
**要記住,commit只會提交在他之前最近的一次add,之后add的不會被提交**
4. 此時刷新你github里的repository,會發現修改成功(增加文件同上)

![readme.png](http://upload-images.jianshu.io/upload_images/656716-2c30d15f944516eb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
####git文件的刪除
這里我自己增加了一個bibi.html的文件
![bibi.png](http://upload-images.jianshu.io/upload_images/656716-59510fa0dd01215b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)在git bash命令框中輸入
```rm -rf bibi.html ---------工作目錄中bibi.html被刪除
git rm bibi.html ----------記錄此次刪除操作
git commit -m "文件被刪除" ----------根據記錄的刪除操作在本地庫刪除
git push -u origin master -------------遠端刪除```
如果只想在本地庫刪除,不想在工作目錄中刪除,只需輸入 
`git rm --cached <fileName>`
###4.git分支
**在git里,每一個分支其實相當于提交對象的指針,因此在多人協作時,在你要提交對象前,先用“git pull(更新你的本地庫至最新改動)”方法。**
####1.git分支創建
`git branch <branch>`
####2.git分支切換
`git checkout <branch>`
這里checkout有兩個作用:1. 是用來切換分支2. 將你的工作目錄恢復到`<branch>`分支
tip:git是通過HEAD指針來知道你當前所在的到底是哪一個分支
####3.git分支創建與切換
`git checkout -b <branch>`
####4.git分支刪除
1.已合并的分支
`git branch -d <name>`
#####2.未合并的分支`
git branch -D <branch>`
####5.git分支合并
`git merge <branch>------------將name分支合并入當前分支`
需要注意的是,當前分支與name分支都對同一文件做過修改時,會出現合并沖突
####6.獲取git分支
#####1.獲取分支名
`git branch`
#####2.獲取分支的最后一次提交
`git branch -v`
#####3.查看已合并到當前分支的分支
`git branch --merged `
這里面的分支通常可以使用-d刪除
#####4.查看未合并的分支
`git branch -- no merged`
###5.git標簽####
1.標簽分類分為輕量標簽和附注標簽
#####1.輕量標簽
它只是一個特定提交的引用
#####2.附注標簽
附注標簽是存儲在數據庫中的一個完整對象,包含打標簽者的名字、電子郵件地址、日期時間等。
####2.創建標簽
#####1.創建附注標簽
`git tag -a v1.0 -m "version"`
#####2.創建輕量標簽
`git tag v1.1`
####3.標簽對比
![附注標簽.png](http://upload-images.jianshu.io/upload_images/656716-2daf215a29a29e2a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
**↑附注標簽 ↓輕量標簽**
![輕量標簽.png](http://upload-images.jianshu.io/upload_images/656716-4662561a3184620b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
####4.關于版本號
根據Semver的規范,版本號用小數點分割為三個數字。比如v3.2.1中**3是主要版本號,2是次要版本號,1是補丁。**
1. 主要版本號:有API變更導致不兼容舊版本的時候使用
2. 次要版本號:新增功能,但是向前兼容的情況下使用
3. 補丁:修復向前兼容的bug時使用

###6.替換工作目錄
####1.從本地庫更新
`git checkout <fileName>`
將本地庫中最新的文件來覆蓋工作目錄的文件,對于新的文件和已經被add的文件將不受影響
####2.從遠端更新
```git fetch origin```
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,936評論 6 535
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,744評論 3 421
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,879評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,181評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,935評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,325評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,384評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,534評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,084評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,892評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,067評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,623評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,322評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,735評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,990評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,800評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,084評論 2 375

推薦閱讀更多精彩內容

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,692評論 9 163
  • 桂林山水甲天下 相信每一個人小時候都讀過這么一篇文章吧,文章的名稱是《桂林山水甲天下》。“桂林的山真奇啊,...
    萱萱753閱讀 1,099評論 0 23
  • 夜是為靜,靜可為凈。 禍莫大于不知足,咎莫大于欲得。 知足者,勿較,較而妒,失本心;較而齊心之所向,釋。 欲得之而...
    頑童林疋閱讀 123評論 0 0
  • 這是一遍純粹的散文書,寫的都是一些感受,以及文化交流,比較看好作者的一些觀點。以下這一段有點感覺,感同身受。摘自《...
    SAMSON小黑麥閱讀 619評論 0 1