Git命令總結

2021-08-27 16:10:12 字數 4082 閱讀 8098

安裝git:

sudo apt-get install git
建立repository(版本庫/倉庫):

1.建立乙個普通目錄:

mkdir 目錄名
2.初始化倉庫:

git init

#初始化完成後在目錄下將出現乙個.git的隱藏目錄,標記當前的目錄就是乙個倉庫,可以進行追蹤倉庫中的任何變化。【可以跟蹤管理版本庫】

3.把檔案新增到倉庫 :

明確一點,任何的版本控制系統,其實都只能追蹤那個文字檔案的改動,實質上追蹤的是改動【刪除乙個檔案屬於乙個改動,增加乙個檔案也屬於乙個改動,向檔案中新增內容也屬於乙個改動】

git add 檔名  # 新增改動

git commit -m "描述資訊"

# 提交到git

# -m表示每一次提交的日誌,可以輸入任意內容,當然最好是有意義的。

如果是第一次使用,系統會讓你進行賬戶配置:

git config --global user.email "[email protected]"

git config --global user.name "your name"

檢視倉庫當前狀態
git status
檢視具體修改的內容
git diff
如果對本地的某個檔案做了修改,但是還沒有add,則通過git diff就可以檢視本地檔案按和倉庫之間的差異,當修改被add之後,再檢視差異則沒有任何輸出。

檢視工作日誌【提交記錄】
git log

--pretty=oneline

回退至之前的版本
在git中,用head表示當前版本,上乙個版本使用head^,上上乙個版本則使用head^^,如果要回退到的版本比較久遠,則使用commit id。

git reset --hard head^

# 回退到最近的乙個版本【--hard能夠使得版本回退到最近的乙個版本】

git reset --hard 0da4f317

# 通過commit id回到某個指定的版本,commit id是唯一的。

git reflog 

# 檢視git的提交記錄,可以獲取過去和未來的所有的版本。

撤銷修改

情況1-修改了檔案,但是還沒有新增到暫存區:

git

checkout--

被修改的檔案

情況2-修改了檔案,新增到了暫存區,但是還沒有提交到版本庫:

git

reset

head

檔名git

checkout--

檔名

情況3-修改了檔案,直接提交到了版本庫:

# 直接回退到上個版本即可

git reset --hard head^

刪除檔案

1.刪除出工作區中的檔案:

rm filename
2.刪除版本庫中的檔案:

git rm filename
遠端倉庫

遠端倉庫的配置

1.生成ssh key。在終端使用命令:

ssh-keygen

-t rsa -c

"git註冊的郵箱位址"

在使用者主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個檔案,如果有,直接開啟使用。

2.新增ssh key到github

注意複製公鑰的時候不包含郵箱。

3.檢測ssh key是否新增成功:

ssh -t [email protected]
新增遠端倉庫

1.建立本地倉庫和遠端倉庫之間的連線:

git remote add origin [email protected]:name/respname.git
2.將本地倉庫中的內容推送到遠端倉庫:

git push -u origin master

# -u是將本地master和遠端的origin進行關聯,以後再次進行推送的時候就可以簡化命令。

從遠端倉庫轉殖
git clone [email protected]:github賬戶名/遠端倉庫名稱.git
git支援多種協議,包括https,一般在公司中使用https協議,使用ssh支援的原生git協議速度更快。

分支管理
實際開發中並不會在master分支上直接進行開發,一般會建立多個子分支。例如:乙個團隊有3個人,每個人有自己的乙個子分支,進行開發,當開發完成後,只需要將各自分支合併到master分支。好處:安全,不影響其他人的工作【避免衝突】

子分支可以建立,刪除和切換。

切換到乙個新分支dev:

git checkout -b dev

# 建立並切換分支

檢視分支:

git branch
切換到分支master:

git checkout master
將子分支合併到當前分支:

git merge dev
刪除分支:

git branch -d dev
bug分支
每個bug通過乙個新的臨時分支修復,修復後,將臨時分支合併,然後將臨時分支刪除。

如果bug還未修復完成,暫時需要去處理其他的任務,bug分支還不能合併到主分支上,可以將當前工作現場儲藏起來。

feature分支
軟體開發過程中,總有很多的新功能會新增進來。

新增乙個新功能的時候,給新功能建立乙個新的子分支,最後將性功能的分支合併到主分支即可。

說明:如果某個功能被廢棄掉,沒有必要合併到主分支,則可以使用命令git branch -d 需要被刪除的分支名稱 直接刪除【強制刪除】。

多人協作

1.獲取遠端倉庫中預設的master主分支:

git remote
2.獲取推送和抓取的路徑:

git remote -v
推送分支
git push 遠端*** 本地***
抓取分支
git pull
如果進行團隊開發,每次在進行push之前,需要將對方的**pull下來【先pull,如果出現衝突,解決完衝突之後將結果push】

標籤管理

建立標籤

git tag 標籤名

# 給當前最新的版本建立標籤

git show 標籤名

# 顯示指定標籤的詳細資訊

git tag 標籤名 commitid

# 給指定commit_id的版本新增標籤

操作標籤

1.刪除本地倉庫中的標籤:

git tag

-d 標籤名

2.推送標籤到遠端倉庫:

git push origin 標籤名

git push origin --tags

3.刪除遠端倉庫中的標籤:

git push origin :refs/tags/標籤名

git命令總結

git config global user.name fangting git config global user.email 126.com git stash list 顯示git棧內的所有備份,可以利用這個列表來決定哪個地方恢復。git stash clear清空git棧。git stat...

Git命令總結

git 操作步驟 1.新建倉庫mkdir mygit 建立倉庫目錄 cd mygit 進入mygit進行操作 pwd 顯示mygit的路徑,此步驟可以不要 2.初始化git init 將目錄轉為git可以管理的倉庫 3.新增檔案新建乙個檔案 如txt檔案 一定要放到剛才新建的目錄下 子目錄也行 這裡...

git命令總結

1.使用repo命令批量提交多個庫的修改 repo forall project1 project2 c git add a repo forall project1 project2 c git commit m commit comment here repo forall project1 p...