Git基礎

git

mac 安裝git

$brew install git

創建版本庫repository

mkdir ~/repository_test

cd ~/repository_test

初始化repository

git init 

此時多出一個文件夾.git,裏面存放版本庫信息

版本庫添加文件

git add file.txt

可以同時添加多個文件,git add xxx,xxxx

將文件提交到git

git commit -m “this is remarks”

-m參數是每次修改後給出的提示

如果修改文件後需要提交到版本庫

git add xxx

git commit -m

掌握工作區的狀態(有沒有添加未提交之類的信息)

git status

如果修改後還未add,想知道哪裏改動了,可以使用

git diff file.txt

如果想知道查看提交日誌

git log

返回最近三次提交日誌,commit id,作者,時間

簡化輸出添加參數 —pretty=oneline

git log —pretty=oneline

版本回退

可以理解爲git中使用HEAD這個指針指定那個版本,而HEAD代表當前版本,HEAD^ 代表上一個版本,HEAD^^代表上一個把本,使用數字代表版本HEAD~3

git reset —hard HEAD^

git reset —head HEAD~1

git reset -head gitcommit_id 這個id不需要全部寫出

版本回退後,使用git log就無法查看到之前當前版本之後的版本了,如果之前的 commit_id還存在可以使用commit_id 回退

查看執行紀錄(可以查看過往的commit id)

git reflog

比較當前工作區與版本庫中文件的差別

git diff HEAD — file.txt

撤銷修改

git checkout — file.txt

這個撤銷是指撤銷到git commit或git add後的版本,如果工作區修改了這個文件並且沒有add,commit這時候撤銷到版本庫中的當前版本,如果已經add了,則撤銷到add  後暫存區內的版本

將暫存區內的版本回退回來

git reset HEAD file.txt

刪除文件

rm file.txt

此時如果是誤刪除,想要恢復,直接git checkout — file 回退到版本庫當前版本

如果是就想刪除,連同版本庫內的文件都刪除需要

git rm file.txt

git commit -m ‘remove file’

這時候徹底刪除了該文件

遠程倉庫Github,提供Git倉庫託管服務的

1、申請Github賬戶

2、創建SSH KEY

ssh-keygen -t rsa -C “[email protected]

此時.ssh目錄中有了公鑰id_rsa.pub和私鑰id_rsa

3、Github添加SSH KEY

Account settings->SSH KEYs->ADD SSH KEY,將之前的公鑰添加進來

這樣就可以使用你的電腦將文件推送到Github上了

4、在Github上面創建Git倉庫

create new reponsitory,輸入repository name 點擊創建

5、關聯本地庫

git remote add origin https://github.com/datayjz/mt_work.git

或者

git remote add origin [email protected]:datayjz/mt_work.git

將對應位置改爲自己的Github和倉庫

origin這個名字就是遠程庫的名字,可以修改

git push -u origin master

這個是首次將,使用-u,不但將本地master分支推送到遠程庫的master上,並且將 其分支也進行了關聯,以後就不需要使用了,直接使用

git push origin master  將本地最新修改推送到遠程庫

遠程庫克隆到本地

git clone [email protected]:youname/reponsitory.git

這樣將遠程庫就克隆到本地了,支持多人開發,很方便

創建並切換分支

git checkout -b fenzhi_name

 相當於

git branch fenzhi_name

git checkout fenzhi_name

查看分支,當前分支前面會有*

git branch

然後就可以在分支上進行工作了

切換回主分支

git checkout master  此時分支上進行的工作內容沒有了,因爲那些操作實在另一個分 支上操作的

合併指定分支到當前分支

git merge fenzhi_name

刪除分支

git branch -d fenzhi_name

Git鼓勵大量使用分支:

查看分支:git branch

創建分支:git branch <name>

切換分支:git checkout <name>

創建+切換分支:git checkout -b <name>

合併某分支到當前分支:git merge <name>

刪除分支:git branch -d <name>

產生分支衝突後將衝突地方改爲一樣,然後add ,commit

git log —greph —pretty=oneline —abbrev-commit查看分支歷史

git merge —no-ff -m “miao shu” fenzhi_name

是用—no—ff,禁用fast forward ,這時候會創建一個commit,-m描述就是這個combat

分支策略

在實際開發中,我們應該按照幾個基本原則進行分支管理:

首先,master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活;

那在哪幹活呢?幹活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,比如1.0版本發佈時,再把dev分支合併到master上,在master分支發佈1.0版本;

你和你的小夥伴們每個人都在dev分支上幹活,每個人都有自己的分支,時不時地往dev分支上合併就可以了。

所以,團隊合作的分支看起來就像這樣:



git儲藏現場

git stash

恢復現場

git stash apply然後刪除stash ,git stash drop

或直接 git stash pop

git stash list查看stash

不需要分支的內容了,刪除分支

git branch -D fens_name

查看遠程庫信息

git remote -v

推送分支

git push origin fenzhi_name

origin爲遠程庫,fenzhi_name爲本地分支


名詞解釋

工作區:自己創建的目錄

版本庫:初始化git目錄後的.git目錄

暫存區:.git下面的index稱爲暫存區,當git add後將文件放到了暫存區中

分支:當初始化git後默認創建了一個分支master,放git commit時候就是將暫存區內的內容提交給分區

分支:使用分支進行多人協作合作,不影響主分支工作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章