Git-----使用小結

來源:互聯網
上載者:User

標籤:參數   ast   code   env   簡單   建立   span   個人   tar   

一.簡單的建立庫

1.ubuntu環境--下載git:sudo apt-get install git

mkdir ~/watermelon
git initvim readme.txtgit add readme.txtgit commit -m ‘create gitfile‘

ps:小命令--
git status 查看工作區的狀態。
git diff 可以查看修改的內容。 ----git diff + <檔案名稱>

2.git版本回退

命令:git reset --hard commit_id

git log 查看提交曆史

git reflog 查看操作曆史

git diff HEAD -- readme.txt 可以查看工作區和版本庫的區別。

2.1 對於一個檔案只提交了(add),沒有commit。當添加後對檔案做了修改。如何更新最後一次內容?

方法:先git add 再git commit。把最後一次的檔案從新添加後再提交。

3.git撤銷修改

3.1 當發現一個檔案內容有誤,只是在工作區。想撤回的方法:

git checkout  -- readme.txt

3.2 當發現一個檔案內容有誤,已經在暫存區。撤回的方法:

git reset HEAD readme.txt  當reset命令回退版本。HEAD表示最新版本。

3.3 當發現一個檔案內容有誤,已經在版本庫了。撤回的方法:同3.2,回退到工作區的版本即可。根據commit_id來修改。

4.git的刪除

git rm readme.txt

git commit -m "remove test.txt"

如果刪錯了,那就回退。

git  checkout -- text.txt

ps: 上述命令只針對沒有用git rm和git commit 之後的檔案。

如果用了git rm 。需要先用git reset HEAD <file> 再 git checkout -- text.txt

如果你是git rm 並且 commit  那麼就沒有辦法回撤了。

5.遠程倉庫

5.1 ssh-keygen -t rsa -C "[email protected]" 利用該命令把產生的公開金鑰放到遠程倉庫上。

在遠程倉庫上也建一個倉庫(倉庫名於本地倉庫名一致)。將本地倉庫與遠端倉庫相關聯。

git remote add origin [email protected]:WdGarden/waterwelon.git   遠程庫的名字就是origin 

把本地所有的內容全部推送到遠程庫上。

git push -u origin  master

用git push命令實際上是把當前分支的master到遠端。以後直接用命令:git push origin master

5.2 git clone [email protected]:WdGarden/watermelon.git

6.建立和合并分支

當建立一個新分支時。再把HEAD指向dev時。

當在dev分支上做了一個新的提交時。

最後在dev上的工作完成了。合并到master上。最後也可以刪除dev分支。

git checkout -b dev 建立分支並切換到dev的分支上。

當在dev分支上修改了內容並且提交了工作,git checkout master 切回到master分支上。那麼檔案還是沒有變化的檔案。因為那個提交在dev的分支上。

合并分支  git merge dev

刪除分支  git branch -d dev

ps :常見的問題:

6.1當分別在兩個分支上對同一個檔案做了修改,並同時做了提交。如所示。

這是時無法合并的。可以修改內容後在add和commit。如所示。

疑問:此處是在主分支上修改的檔案。那麼在dev分支上修改的內容是否有變化了?沒有變化是否需要merge一次?

另一種合并分支的方式:

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

BUG分支:

git  stash的功能:把當前的工作現場儲存起來。

Feature分支:

當建立一個分支,同時做了提交的內容。然後想刪除此分支。

git branch -d feature-vulcan

Git友情提醒,feature-vulcan分支還沒有被合并,如果刪除,將丟失掉修改,如果要強行刪除,需要使用大寫的-D參數。

7.  多人協作:

當你從遠程倉庫複製時,實際上Git自動把本地的master分支和遠端master分支對應起來了,並且,遠程倉庫的預設名稱是origin

git remote -v顯示更詳細的資訊

推送分支:git push origin master

當另外一個人clone這個庫,你的小夥伴只能看到本地的master分支。

你的小夥伴要在dev分支上開發,就必須建立遠程origindev分支到本地,於是他用這個命令建立本地dev分支:

git checkout -b dev origin/dev

他就可以在dev上繼續修改,然後,時不時地把dev分支push到遠程:

git add  a.txt

git commit -m ‘a.txt‘

git push origin dev

你的小夥伴已經向origin/dev分支推送了他的提交,而碰巧你也對同樣的檔案作了修改,並試圖推送:

git add b.txt

git commit -m ‘b.txt‘

git  push  origin dev

送失敗,因為你的小夥伴的最新提交和你試圖推送的提交有衝突,解決辦法也很簡單,Git已經提示我們,先用git pull把最新的提交從origin/dev抓下來,然後,在本地合并,解決衝突,再推送:

git pull

git pull也失敗了,原因是沒有指定本地dev分支與遠程origin/dev分支的連結,根據提示,設定devorigin/dev的連結:

git branch --set-upstream-to=origin/dev dev

git pull

這回git pull成功,但是合并有衝突,需要手動解決,解決的方法和分支管理中的解決衝突完全一樣。解決後,提交,再push:

git commit -m "fix env conflict"

git push origin dev

 

 

 

 

 

 

 

 

 

Git-----使用小結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.