git 常用命令與使用場情

2021-07-11 05:14:42 字數 4739 閱讀 9098

git init

把當前目錄變成git可以管理的倉庫。

git add ...

新增檔案到本地倉庫。(git add -a把所有檔案新增到倉庫)

git commit -m "add a file"

把檔案提交到倉庫,以及對應的說明。

git commit -a

相當於git add -a, git commit -m, 開啟乙個文件,輸入說明。

git status

檢視當前工作平台的狀態。

git diff readme.txt 

diff --git a/readme.txt b/readme.txt

index 46d49bf..9247db6 100644

--- a/readme.txt

+++ b/readme.txt

@@ -1,2 +1,2 @@

-git is a version control system.

+git is a distributed version control system.

git is free software.

檢視檔案的修改

git log --graph --pretty=oneline --abbrev-commit

commit a80c8f866cb32b4e0352b82b59dbb836651350af

author: xxf local>

date: thu apr 14

22:25:30

2016 +0800

some practice

commit e2bc6c25ef14e4357a66286b4dddedde8f70904e

author: xxf local>

date: thu apr 7

00:05:03

2016 +0800

some practice code

檢視版本庫的狀態

git

reset--

hard

head^

gitreset--

hard

e2bc6c25

版本回退。

head表示當前版本

上乙個版本是head^

上上乙個版本是head^^

往上100個版本,寫成head~100。

git

reflog

a80c8f8

head

@: commit: some practice

e2bc6c2 head@: commit: some

practice

code

95aebf6

head

@: merge xxf: fast-forward

檢視命令歷史。

使用場景:

當前所在版本為a

回退了到了前乙個版本b

然後想再到版本a,用git log已經看不到a版本的資訊了,只能看到b以前的。

用git reflog可以看到之前用過的命令,前面有commit id。

再用git reset –hard 即可。

git checkout --

把檔案在工作區的修改全部撤銷。這裡有兩種情況:

file自修改後還沒有被放到暫存區,撤銷修改就回到和版本庫一模一樣的狀態;

file已經新增到暫存區後,又作了修改,撤銷修改就回到新增到暫存區後的狀態。

就是讓這個檔案回到最近一次git commit或git add時的狀態。

使用場景:

在檔案被誤刪之後,用此命令也可以恢復。

git reset head readme.txt

把暫存區的修改撤銷掉(unstage),重新放回工作區。

使用場景:

git add ,此時還沒有commit,

使用以上命令,就會讓file變為還沒有add的狀態。

git rm test.txt

刪除這個檔案。記得commit

ssh-keygen -t rsa -c "[email protected]"

.ssh目錄裡面有id_rsaid_rsa.pub兩個檔案,是ssh key的秘鑰對,id_rsa是私鑰,id_rsa.pub是公鑰。

id_rsa.pub的放在github中,可以和github建立連線。

git remote add origin [email protected]:michaelliao/learngit.git

新增遠端庫

git push -u origin master

把本地倉庫的內容推送到遠端。

第一次推送master分支時,加上了-u引數,git不但會把本地的master分支內容推送的遠端新的master分支,還會把本地的master分支和遠端的master分支關聯起來。

git clone [email protected]:michaelliao/gitskills.git

轉殖遠端倉庫到本地。

git checkout -b dev

git branch dev

git checkout dev

建立並切換分支。

git branch

檢視當前分支。

git merge dev

合併分支。

git branch -d dev

刪除分支。

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

合併dev分支,–no-ff引數表示禁用fast forward

fast forward合併就看不出來曾經做過合併。

git stash

git stash list

git stash pop

使用場景:

當前工作到一半,但內容還不能提交。

用git stash把內容放在list中。

然後做新的修改,完成後提交。

此時,要從list取出之前的做到一半的工作。

git branch -d

刪除乙個沒有被合併過的分支。

git remote -v

檢視遠端庫的資訊。

git branch --set-upstream dev origin/dev

指定本地dev分支與遠端origin/dev分支的鏈結。

多人協作場景:

1. 首先,可以試圖用git push origin branch-name推送自己的修改;

2. 如果推送失敗,則因為遠端分支比你的本地更新,需要先用git pull試圖合併;

3. 如果合併有衝突,則解決衝突,並在本地提交;

4. 沒有衝突或者解決掉衝突後,再用git push origin branch-name推送就能成功!

5. 如果git pull提示「no tracking information」,則說明本地分支和遠端分支的鏈結關係沒有建立,用命令git branch –set-upstream branch-name origin/branch-name。

git tag

git tag -a v0.1 -m "version 0.1 released" 3628164

打標籤,-a指定標籤名,-m指定說明文字

git tag檢視所有標籤

git show v0.9

檢視標籤資訊

git tag -d v0.1

刪除標籤

git push origin :refs/tags/v0.9

刪除已經提交的tag,要先刪除本地的,再刪除遠端的。

git rebase

合併分支,將本地的commit放在origin後面。

在rebase過程中會有conflicts,解決後用git add

然後git rebase --continue繼續rebase。

在這個過程中隨時可以停止。

git rebase --abort

會將狀態恢復到rebase之前。

git rebase --skip

git將單個檔案恢復到歷史版本:

1git reset commit_id 檔案路徑

2git checkout -- 檔案路徑

git 常用命令使用

1 當git伺服器ip位址變更後,本地 連線遠端伺服器會失敗,需要在本地重設遠端伺服器ip git remote set url origin ssh 2 錯誤 git配置ssh rsa驗證後會首先通過公私鑰進行驗證,若客戶端本地的公私鑰沒有加入到git伺服器許可權管理相關配置中就通不過rsa驗證,...

Git常用命令使用

1.本地倉庫建立 git init 2.伺服器上邊建立倉庫 git init bare 3.本地檔案提交至暫存區 git add filename add git add test.txt 4.暫存區儲存檔案至本地倉庫 git commit m 描述資訊 5.檢視歷史記錄 git log git l...

GIT 常用命令使用

一 修改命令git remote set url origin url二 先刪後加git remote rm origin git remote add origin git github.com sheng demo.git三 修改config檔案 如果你的專案有加入版本控制,那可以到專案根目錄下...