Git分布式版本控制器的使用

Git分布式版本控制器的使用:
1.創(chuàng)建一個版本庫:mkdir repository(庫名稱)
2.進入該庫:cd repository
psw 命令用于顯示當前目錄
3.git init : 把這個目錄變成git可以管理的倉庫,可見到生成了.git目錄
4.新建項目文件test.txt,放到倉庫根目錄或者子目錄下都行
5.執(zhí)行git add test.txt ,把文件添加到倉庫
6.git commit -m "這里是注釋"
git status 命令 可以讓我們時刻掌握倉庫當前的狀態(tài)。
git diff 命令查看修改過的內容。
7.當我們再次修改完test.txt文件的時候,可以先通過git status和git diff命令查看當前文件的狀態(tài),最后再依次執(zhí)行5,6的操作,并再次查看一下狀態(tài)。
git log 命令顯示從最近到最遠的提交日志;git log --pretty=oneline 命令可以顯示精簡版提交日志
git reflog 命令查看命令歷史,方便我們知道版本id。
cat test.txt 命令查看文件的內容
8.當我們想回退或者前進到那個版本的時候,有兩種方法:
1.在git中,HEAD表示當前版本,上一個版本是HEAD,上上個版本是HEAD^,上100個版本可以HEAD~100
2.通過版本id來查找。
git reset --hard commit_id(推薦)
git reset --hard HEAD~num

工作區(qū)和暫存區(qū):
工作區(qū):就是在電腦能看到的目錄,比如repository文件夾就是一個工作區(qū)。
版本庫:工作區(qū)有一個隱藏目錄.git,這個不算工作區(qū),而是git的版本庫。git的版本庫存放了很多東西,其中最重要的就是稱為stage(或者index)的暫存區(qū),還有git為我們自動創(chuàng)建的第一個分支master,以及master的一個指針叫HEAD。

image.png

第一步git add是把文件添加進去,實際上就是把文件修改添加到暫存區(qū)
第二步git commit提交,實際上就是把暫存區(qū)的所有內容提交到當前分支
簡單理解:需要提交的文件修改統(tǒng)統(tǒng)放到暫存區(qū),然后,一次性提交暫存區(qū)的所有修改。
git 追蹤并管理的是修改,不是文件。
9.撤銷修改:
a.當你改亂了工作區(qū)某個文件的內容,想直接丟棄工作區(qū)的修改時,用命令git checkout -- test.txt
b.當你不但改亂了工作區(qū)某個文件的內容,還添加到了暫存區(qū)時,想丟棄修改,分兩步,第一步用git reset HEAD test.txt,就回到a場景,第二步按照場景a來操作。
c.已經提交了不合適的修改到版本庫,想要撤銷本次提交,可以直接回退到前一版本,不過前提是沒有推送到遠程庫。
10.刪除文件:
rm test.txt //刪除工作區(qū)的文件
git rm test.txt //刪除工作區(qū)和暫存區(qū)的文件,commit后才會刪除版本庫的文件
git commit -m "注釋"
11.創(chuàng)建遠程倉庫:
①創(chuàng)建ssh key。在windows下打開git bash,輸入命令:ssh-keygen -t rsa -C "你本人郵箱";就會在你的用戶主目錄下找到.ssh目錄,里面有id_rsa和id_rsa.pub兩個文件,這兩個就是ssh key的密鑰對,id_rsa是私鑰,不能泄露,id_rsa_pub是公鑰,可以放心告訴別人。
②登錄github,在setting里面找到ssh key頁面添加新的ssh key,添加任意title,在key文本框里粘貼id_rsa.pub文件的內容,點擊添加即可。
③在本地創(chuàng)建一個git倉庫,在github上面也創(chuàng)建一個一樣名字的倉庫;現(xiàn)在就可以通過以下命令來讓本地倉庫和遠程的倉庫實現(xiàn)同步:
git remote add origin git@github.com:XXX/xxx.git
其中XXX是你自己在github的賬戶名,添加后,遠程庫的名字就是origin,這是git默認的叫法。
接著輸入以下一條命令即可實現(xiàn)把本地的倉庫內容推送到github上的倉庫
git push -u origin master
第一次推送,由于遠程庫是空的,我們第一次推送加了-u參數(shù) ,git不但會把本地的master分支內容推送到遠程新的master分支,還會把本地的master分支和遠程的master分支關聯(lián)起來,在以后的推送或者拉取時就可以簡化命令。以后只要在本地commit了,只要執(zhí)行一下命令即可:
git push origin master
上面是先創(chuàng)建本地倉庫在創(chuàng)建遠程倉庫,其實最好是先在github上面創(chuàng)建一個倉庫,任何人都可以通過復制上面的倉庫內容到本地,然后進行操作。執(zhí)行以下命令:
git clone git@github.com:XXX/xxx.git
XXX是創(chuàng)建遠程倉庫那個人的github賬戶名,xxx是倉庫名
12.分支:
a.查看分支:git branch
b.創(chuàng)建分支:git branch 分支名稱
c.切換分支:git checkout 分支名稱
d.創(chuàng)建+切換分支:git checkout -b 分支名稱
e.合并某分支到當前分支:git merge 需要被合并的分支
f.刪除分支:git branch -d 需要被刪除的分支
g.假如主分支做了修改,別的分支也做了修改,那么合并分支就會出現(xiàn)沖突,git會標記處不同分支的內容
image.png

刪除沖突后再添加提交一次,就可以合并成功了,可以用命令:git log --graph --pretty=oneline --abbreb-commit 來查看合并情況。
分支策略:master分支應該是非常穩(wěn)定的,也就是僅用來發(fā)布新版本,平時不能在上面干活,創(chuàng)建一個dev分支,干活都在dev分支上,也就是說dev分支是不穩(wěn)定的,等到需要發(fā)布的時候,再把dev分支合并到master上,再在master分支上發(fā)布;多人都在dev上干活,每個人都有一個分支,是不是往dev分支上合并就行了。
image.png

bug分支:當我們在某個分支上工作到一半時,需要臨時去處理一個緊急bug,這時候我們可以先把你正在工作的工作現(xiàn)場保存起來, 等以后恢復現(xiàn)場后繼續(xù)工作。保存工作現(xiàn)場的命令:git stash ; 查看工作現(xiàn)場列表命令:git stash list ;恢復工作現(xiàn)場命令:git stash apply,恢復后stash內容并不刪除,需要使用git stash drop命令來刪除。也可以合起來:git stash pop :恢復的同時刪除stash內容。
如果一個分支還沒合并之前就想把它刪除掉,git branch -d [fileName]是刪除合并后的命令,git branch -D [fileName]是刪除合并前的命令。
多人協(xié)作:
git remote / git remote -v:查看遠程庫信息
master分支和dev分支都是要時刻與遠程倉庫同步的。
a.首先,可以試圖用git push origin branch-name推送自己的修改;
b.如果推送失敗,則因為遠程分支比你本地的更新,需要先用git pull試圖合并;
c.如果合并有沖突,則解決沖突,并在本地提交;
d.沒有沖突或者解決掉沖突后,再用git push origin branch-name推送就能成功;
e.如果git pull提示no tracking information,則說明本地分支和遠程分支的鏈接關系沒有創(chuàng)建,用命令git branch --set-upstream branch-name(本地) origin/branch-name(遠程)
13.版本標簽:
git tag [tagName] : 新建一個標簽,默認為當前最新提交的版本,也可以指定一個commit_id;
git tag -a [tagName] -m "標簽信息..." : 可以指定標簽信息
git tag : 可以查看所有標簽
git tag -d [tagName] : 刪除本地標簽
git push origin [tagName] : 推送標簽到遠程
git push origin --tags : 一次性推送全部尚未推送到遠程的本地標簽
git tag -d [tagName] + git push origin :refs/tags/[tagName] : 刪除遠程標簽

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

推薦閱讀更多精彩內容