1. 程式人生 > >git簡單操作

git簡單操作

1、

git init 初始化倉庫

git add 1.txt 新增檔案

git commit -m ”commit” 提交更新,添加註釋

git status 檢視倉庫狀態

git log 檢視日誌

 

//修改檔案後提交更新

git diff  檢視有哪些修改

git add 新增檔案 //檔案修改後,在提交之前必須 add

git commit -m “commit”

 

2、

//版本回退

git reset —hard HEAD^  回退到上一個版本

git reset —hard 18ffb42 回退到指定版本

git reflog  記錄每一次提交記錄,包括回退、commit

 

git diff HEAD -- 1.txt 檢視工作區和暫存區的不相同的地方,1.txt前面有空格

 

3、

//撤銷修改

//修改操作還未提交到暫存區

git checkout -- 1.txt

//修改操作提交到了暫存區

git reset HEAD -- 1.txt

 

//刪除檔案

rm 1.txt 刪除檔案

 

//確認刪除檔案

git rm 1.txt   

git commit

 

//檔案刪除還未提交到暫存區,撤銷刪除

git checkout -- 1.txt

//檔案刪除提交到了暫存區,撤銷刪除

git reset HEAD -- 1.txt

 

4、

//遠端倉庫

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013752340242354807e192f02a44359908df8a5643103a000

 

1、首先在GitHub上建立倉庫

2、將本地Mac的rsa公鑰儲存到GitHub的SSH中

3、新增遠端倉庫

git remote add origin [email protected]:xxxxx/test.git

origin是遠端倉庫名字,可以修改成其他

 

4、推送原生代碼到遠端倉庫

git push -u origin master

如果第4步報錯,fatal: refusing to merge unrelated histories

執行:git pull origin master --allow-unrelated-histories

 

將本地修改推送到遠端倉庫

git push origin master

從遠端倉庫獲取更新

git pull origin master

 

5、

//建立、合併分支

從遠端倉庫下載程式碼到本地後,如果原生代碼為完成,上傳到遠端倉庫,會影響別人程式碼。如果不上傳,有可能會丟失原生代碼。

分支可以解決這個問題,本地建立分支,即使上傳到遠端倉庫,也會建立新的分支,不會影響其他人。而且分支不會影響主線的程式碼。

分支可以從遠端倉庫pull程式碼,合併後提交程式碼也不會有影響。

 

//建立分支

git checkout -b dev

//檢視分支

git branch  分支名簽名有* 的 是當前分支

//切換到master分支

git checkout master

//合併分支程式碼到master上

git merge dev

//刪除分支

git branch -d dev

//刪除沒有合併的分支

git branch -D dev

 

//合併分支時,加上--no-ff引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併

git merge --no-ff -m 'merge with no-ff' dev

 

 

6、

BUG分支

當前正在寫程式碼,臨時讓解決BUG,但是當前程式碼還沒有寫完,可以先把當前分支儲存起來,然後在master上重新建立分支解決BUG,BUG解決後再回到儲存的分支,繼續工作。

 

//建立分支 新加功能

git checkout -b dev1

vim 1.txt

//臨時來了需求,解決崩潰BUG,先把dev分支的場景儲存

git stash

 

//建立分支,解決bug

git checkout -b dev2

vim 1.txt

git add .

git commit

git checkout master

git merge —no-ff -m ‘fix bug’

git branch -d dev2

 

//BUG修復後,回到分支dev,

git checkout dev

//還原dev的工作場景

git stash list   //檢視儲存的工作場景

 

//還原工作場景

一是用git stash apply恢復,但是恢復後,stash內容並不刪除,你需要用git stash drop來刪除;

另一種方式是用git stash pop,恢復的同時把stash內容也刪了:

git stash pop

 

 

7、

pull/push遠端分支

git remote -v : 檢視遠端庫資訊

 

//推送本地分支到遠端倉庫

git push origin dev(分支名)

 

//從遠端倉庫拉取分支到本地

git checkout -b dev origin/dev

如果報錯:atal: Cannot update paths and switch to branch 'develop' at the same time.

先執行git fetch ,然後再執行git checkout -b dev origin/dev

 

建立本地分支和遠端分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;

從遠端抓取分支,使用git pull,如果有衝突,要先處理衝突。

 

 

8、tag

//給當前分支的最近的commit打tag

git tag V1.0

 

//對某一次commit打tag

git tag v1.0 f52c633

 

//指定tag標籤名和註釋

git tag -a v1.0 -m ‘v1.0’ f52c633

 

//檢視所有tag

git tag

git show v1.0 //檢視tagv1.0的資訊

 

git push origin <tagname>可以推送一個本地標籤;

git push origin --tags可以推送全部未推送過的本地標籤;

git tag -d <tagname>可以刪除一個本地標籤;

 

刪除一個遠端標籤,需要先刪除本地標籤,然後刪除遠端標籤

git tag -d <tagname>

git push origin :refs/tags/<tagname>