3、版本回退
4、工作區和暫存區
5、git分支管理
6、bug分支
7、feature分支
$
gitconfig
--global
user
.name
"yourname"
$git
config
--global
user
.email
"youremail.com"
本機是用win10,在本機建立乙個空目錄然後比如gitlean 然後在該目錄中通過命令git init來建立乙個git版本庫此時這個目錄gitlean就能被git進行管理了。
這個檔案必須放在剛才建立的git倉庫中,不然git無法對該檔案進行管理。
將檔案新增到git倉庫讓git進行管理需要兩步,新增和提交,新增只能乙個乙個新增而提交可以一次提交多個檔案。
第一步,用命令git add告訴git,把檔案新增到倉庫:$ git add git.txt
第二步,用命令git commit告訴git,把檔案提交到倉庫:$ git commit -m "第一次提交"
注意git commit的時候後面有個-m的引數這個引數最好加上因為版本回溯的時候會方便我們檢視各個版本
版本回退可以回退到可以回退到之前或者之後的任意乙個版本。使用git reset --hard
命令。
在回退之前我們還可以檢視有幾個版本。使用$ git log --pretty=oneline
來檢視歷史版本。
fcb60b00ba973f8c235fe442e501421ea2aa8158
(head
->
master
)第三次提交
a67d7b276910b6a26a2b564e463f6c30b52ad91e
第二次提交
718ff960fa8d874f94c3693d643abca72fcac6d9
第一次提交
如上是檢視的歷史版本,由上可知共有三個版本,前面的一大串文字是版本號,通過版本號可以回溯到任意版本。
在git中,用head表示當前版本,也就是最新的提交1094adb…(注意我的提交id和你的肯定不一樣),上乙個版本就是head,上上乙個版本就是head
,當然往上100個版本寫100個比較容易數不過來,所以寫成head~100。
所以回退到上乙個版本使用以下命令:$ git reset --hard head^
繼續回退到上乙個版本就繼續執行該命令即可。
想要回到最新的版本就必須知道最新版本的版本號。知道版本號後使用:git reset --hard 版本號
就可以回到最新的版本
工作區就是我們建立的leangit目錄,當使用git init命令初始化後裡面會有乙個隱藏資料夾.git它就是我們的版本庫裡面的東西很多,其中最重要的就是稱為stage(或者叫index)的暫存區,還有git為我們自動建立的第乙個分支master,以及指向master的乙個指標叫head。
前面講了我們把檔案往git版本庫里新增的時候,是分兩步執行的:
第一步是用git add把檔案新增進去,實際上就是把檔案修改新增到暫存區;
第二步是用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支。
因為我們建立git版本庫時,git自動為我們建立了唯一乙個master分支,
所以,現在,git commit就是往master分支上提交更改。
你可以簡單理解為,需要提交的檔案修改通通放到暫存區,然後,一次性提交暫存區的所有修改。
檢視狀態的命令是git status
git add 實際上就是把要提交的所有修改放到暫存區(stage/index),然後,執行git commit就可以一次性把暫存區的所有修改提交到分支。
git是一款很優秀的版本控制工具它管理的是修改而不是檔案,比如你新增了一行,這就是乙個修改,刪除了一行,也是乙個修改,更改了某些字元,也是乙個修改,刪了一些又加了一些,也是乙個修改,甚至建立乙個新檔案,也算乙個修改。
修改後只有被git add後即放入暫存區的檔案,git commit後才能被提交,如果的對檔案做了修改但是沒有放入暫存區的檔案git commit後該檔案沒有被提交
在執行這個操作之前必須git add 讓git可以管理到你的檔案讓git可以實時的進行監控
場景1:當你改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令:git checkout --file
。
場景2:當你不但改亂了工作區某個檔案的內容,還新增到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset head ,就回到了場景1,第二步按場景1操作。
場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回退一節,不過前提是沒有推送到遠端庫。
使用git rm file
命令來刪除檔案,刪除之後用git commit提交即可,如果想讓被刪除的檔案回來只需要使用git reset --hard head^
命令進行版本回溯就可以了
原因是沒有提交乙個物件,要先commit之後才會真正建立master分支,此時才可以建立其它分支。
使用命令:git switch -c name
來建立新的分支
使用命令:git branch -a
進行分支的檢視 當前分支的前面會標*
使用命令:git switch name
來切換分支
使用命令:git merge name
這個命令是合併某分支到當前分支,如果當前在master分支則合併到master分支。
使用命令:git branch -d name
應用場景:你現在在dev分支幹活,活才幹了一半估計還有乙個小時才能完成,但是在master分支有乙個bug需要你來修復,情況還比較急。那麼你的dev分支怎麼辦但是你還不能提交。
此時git給出的方案是使用命令:git stash
命令來暫時儲存工作區檔案。當我們儲存完工作區後切換到master分支新建乙個issue-101的分支來修復master分支的bug,當bug修復後把issue-101分支合併到master分支,再刪除issue-101分支就可以了。再切換到dev分支用命令:git stash pop
來恢復就可以了。
軟體開發中,總有無窮無盡的新的功能要不斷新增進來。
新增乙個新功能時,你肯定不希望因為一些實驗性質的**,把主分支搞亂了,所以,每新增乙個新功能,最好新建乙個feature分支,在上面開發,完成後,合併,最後,刪除該feature分支。
如果feature分支沒有被合併但是該分支含有重要的**不能被洩露必須刪除,
此時使用命令:git branch -d name
進行刪除
Git系統學習 一
1.學習背景 最近工作並不是很忙,就想在網上找一些開源專案去做做,這樣就可以熟悉新的知識和架構,對自己的能力也有一定的提公升,於是就在github這個託管git的 上,那時就感覺很糊塗,不知道git的這種版本管理軟體是怎麼運作的,怕把別人的專案搞出問題。於是google了下,想深入的學習這個軟體。2...
git 的系統學習
第一章 git 理論 git 簡介 git 是目前世界上被最廣泛使用的現代軟體版本管理系統,git 本身亦是乙個成熟並處於活躍開發狀態的開源專案。git 使用分布式架構,是分布式版本管理 dvcs的代表。相較於例如 cvs 或者 subversion 等集中式版本管理軟體,git 並不是將 的所有修...
Git版本管理系統學習之起步 Git 簡史
同生活中的許多偉大事物一樣,git 誕生於乙個極富紛爭大舉創新的年代。linux 核心開源專案有著為數眾多的參與者。絕大多數的 linux 核心維護工作都花在了提交補丁和儲存歸檔的繁瑣事務上 1991 2002年間 到 2002 年,整個專案組開始啟用乙個專有的分布式版本控制系統 bitkeeper...