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_rsa
和id_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檔案 如果你的專案有加入版本控制,那可以到專案根目錄下...