git常用命令操作
阿新 • • 發佈:2018-11-21
目前市場主流的版本控制系統主要分為:集中式版本控制系統與分散式版本控制系統。
集中式版本控制目前主流的:SVN
分散式版本控制系統目前主流的:Git
兩者之間的區別:
集中式有中央伺服器,開發人員需要從中央伺服器獲得最新版本的專案然後在本地開發,開發完推送到中央伺服器中,因此無法脫離伺服器。 分散式沒有中央伺服器,開發人員本地都有local repository 集中式必須要聯網才能工作,而且對網路的依賴性較強,如果推送的檔案比較大而且網路狀態欠佳,則提交檔案的速度會受到很大的限制。 分散式在沒有網路的情況下也可以執行commit、檢視版本提交的記錄,以及分支操作,在有網路的情況下執行push到 Remote Repository。 集中式提交的檔案會直接記錄到中央版本庫,分散式提交是本地操作,需要執行push操作才會到主要版本庫。
Git工作過程圖:
本地庫與遠端庫互動的方式:
1、團隊內協作
成員1建立本地庫,將程式碼提交到遠端倉庫,成員2clone下程式碼,加入團隊後才可以進行push操作。
2、跨團隊協作
團隊2可以fork團隊1的程式碼,團隊2通過pull request之後,通過團隊1進行稽核。
Git配置:
專案級別的配置:
git config user.name tom
git config user.email [email protected]
修改的檔案在:當前專案下.git/config
使用者級別的配置:
git config --global user.name tom
git config --global user.email [email protected]
Git命令:
建立倉庫:git init 檢視狀態:git status 建立一個檔案新增到git中 git add aa.txt 將aa.txt新增到git暫存區中。 git -rm --cached aa.txt:將aa.txt從暫存區刪除。 提交:git commit -m "新增新檔案" 新增並提交:git commit -am "xxx" add並commit 檢視提交記錄:git log 或者: git log --pretty=oneline 或者 git log --oneline 或者 git reflog 版本的前進與後退:git reset --hard 版本的索引值 版本的後退:只能後退: git reset --hard HEAD^ 後退一步 git reset --hard HEAD^^^ 後退三步 git reset --hard HEAD~3 後退三步 --hard --soft --mixed --hard:工作區與暫存區與本地庫一起改變 --soft:工作區與暫存區不變,本地庫落後 --mixed:工作區不變,暫存區與本地庫落後 git reset --hard HEAD 將暫存區與工作區與本地庫狀態同步 在當前版本的中刪除了檔案a.txt,然後檢視git status,然後git add a.txt git commit -m 'delete' 當時,當前版本的中a.txt將不在存在,我們如果想找回,需要回到上一個版本中。才可以找回。 對於刪除檔案記錄提交到暫存區,想恢復: git reset --hard HEAD 這個時候,會將暫存區與工作同的內容與本地庫進行同步操作。
--------前提是刪除前的狀態,提交到了git本地庫裡面。----------
比較檔案差異:
git diff 檔名 預設是將當前工作區中的檔案與暫存區中的檔案進行比較的。
git diff HEAD 檔名 當前工作區與本地庫中的版本進行比較的。
分支操作:
建立分支:git branch dev
檢視分支:git branch -v
切換分支:git checkout dev
合併分支:git checkout master git merge dev
合併分支衝突問題:當修改了相同的內容的時候,會產生衝突問題
產生衝突時,需要對產生衝突的檔案進行手動的合併操作
合併完成後,git add xx
git commit -m "xxxx" 注意:此時不帶檔名。
git pull 從遠端上拉取專案,它相當於git foreach與git merge兩個命令的組合使用。
GitHub
git連線github
git remote origin xxxxxxx.git地址
git remote -v 檢視
從伺服器中拉取專案
從伺服器中上傳專案
解決衝突問題。
git push origin master
git remote add origin 倉庫的地址
2、查詢使用者資訊
git config --list
3、如果push遇到在輸入密碼是熟錯後,就會報這個錯誤fatal: Authentication failed for
解決辦法:
git config --system --unset credential.helper
之後你在push就會提示輸入名稱和密碼
所以我們需要先同步一下
git pull origin master
6、更新專案
git push origin master
7、建立分支
git checkout -b dev
等於:
git branch dev
git checkout dev
8、切換分支
git checkout dev
9、合併分支,在合併分支的時候,需要合併到哪個分支,就要先切換到哪個分支
git checkout master
git merge dev 合併分支
git reset --hard dev;
git pull --force origin master