標籤:參數 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分支上開發,就必須建立遠程origin的dev分支到本地,於是他用這個命令建立本地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分支的連結,根據提示,設定dev和origin/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-----使用小結