1. 程式人生 > >git常用命令操作

git常用命令操作

目前市場主流的版本控制系統主要分為:集中式版本控制系統與分散式版本控制系統。
集中式版本控制目前主流的: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