Git 常用操作命令記錄

安裝Git

官網(wǎng)安裝指導(dǎo)地址

MAC下使用HomeBrew安裝

如果沒有HomeBrew,在終端輸入以下命令嘗試安裝:

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

利用brew安裝版本的Git

$ brew install git

Git 相關(guān)命令

命令 相關(guān)操作 解釋
init $ git init 創(chuàng)建本地版本庫
config $ git config --global user.name "yourName" 配置name信息
$ git config --global user.email "yourEmail" 配置郵箱信息
add $ git add fileName 添加文件到staged狀態(tài)
$ git add . 添加所有文件到staged狀態(tài)
status $ git status 查看庫文件當前狀態(tài)
commit git commit -m "填寫相關(guān)描述信息" 將處于stage狀態(tài)的文件提交到本地庫中
$ git commit -am "填寫相關(guān)描述信息" 合并add操作,一步到位
$ git commit --amend --no-edit 追加已經(jīng)commit的操作, 此時會刪除最后一條記錄并產(chǎn)生新的一條記錄 (commit id 不同),注意要先將改動的文件add到staged狀態(tài)
log $ git log 查看庫的操作日志
$ git log --oneline 查看庫的操作關(guān)鍵信息,每個 commit 內(nèi)容顯示在一行
$ git log --oneline --graph 查看庫的操作關(guān)鍵信息,包括分支信息
diff $ git diff 查看unstaged狀態(tài)的文件
$ git diff --cached 查看 staged狀態(tài)的文件(add過的文件)
$ git diff HEAD 查看 staged & unstaged (HEAD)
reset $ git reset fileName 回到add之前狀態(tài)(unstaged)
$ git reset --hard HEAD 查看上次 commit 的HEAD指針指向的id
$ git reset --hard commitId 回到 commit 之前(回滾): hard 會清除 7cd4e4e 之后的所有操作提交
$ git reset --soft commitId 回到 commit 之前(回滾): soft 會保留 7cd4e4e 之后的所有操作
reflog $ git reflog 查看所有 HEAD 的改動,配合 reset --hard 的可恢復(fù)之前的刪除操作
checkout $ git checkout dev1.0 切換分支/tag
$ git checkout -b dev1.0 創(chuàng)建并切換本地分支
$ git checkout -b dev1.1 origin/dev1.1 將遠程分支添加到本地
$ git checkout commitId -- fileName 讓文件回滾到某一次 commit
branch $ git branch 查看當前分支
$ git branch -a 查看全部分支
$ git branch dev1.0 創(chuàng)建分支
merge $ git merge dev1.0 合并分支
$ git branch -d dev1.1 刪除本地分支
$ git merge --no-ff -m "相關(guān)描述信息" dev1.0 合并分支,保留分支上commit信息
stash $ git stash 暫存修改
$ git stash list 查看 stash 中的暫存任務(wù)
$ git stash pop 繼續(xù)暫存任務(wù)
fetch $ git fetch origin dev1.0 拉取遠程版本庫到本地版本庫(需要再次merge)
pull $ git pull origin dev1.0 拉取遠程版本庫到本地版本庫,并將其merge到本地項目中
push $ git push -u origin dev1.0 推送本地版本庫到遠程版本庫
$ git push origin :branch-name 刪除遠程分支或tag
$ git push origin branch-name1:branch-name2 替換遠程分支
remote $ git remote add origin remoteAddress 添加并鏈接到遠程庫
$ git remote rm origin 刪除遠程庫
tag $ git tag 查看標簽
$ git tag v1.0.0 -light 創(chuàng)建輕量標簽
$ git tag -a v1.0.0 -m "release 0.1.0 version" -a即annotated的縮寫,指定標簽類型,后附標簽名
$ git push origin v1.0.0 發(fā)布標簽,提交到git服務(wù)器
$ git push origin –tags 將本地所有標簽一次性提交到git服務(wù)器
$ git tag -d v1.0.0 刪除標簽
$ git checkout tagname 切換標簽
$ git tag -a v1.0.0 commitId 補打標簽

init

進入相關(guān)文件夾創(chuàng)建本地版本庫

$ git init

config

配置相關(guān)信息

$ git config --global user.name "yourName
$ git config --global user.email "yourEmail"

add

添加文件到staged狀態(tài)

$ git add <file>

添加所有文件到staged狀態(tài)

$ git add .

status

查看庫文件當前狀態(tài)

$ git status

commit

將處于stage狀態(tài)的文件提交到本地庫中

$ git commit -m "填寫相關(guān)描述信息"

合并add操作,一步到位

$ git commit -am "填寫相關(guān)描述信息"

追加已經(jīng)commit的操作, 此時會刪除最后一條記錄并產(chǎn)生新的一條記錄 (commit id 不同),注意要先將改動的文件add到staged狀態(tài)

$ git commit --amend --no-edit      

log

查看庫的操作日志

$ git log

查看庫的操作關(guān)鍵信息,每個 commit 內(nèi)容顯示在一行

$ git log --oneline

查看庫的操作關(guān)鍵信息,包括分支信息

$ git log --oneline --graph

diff

查看unstaged狀態(tài)的文件

$ git diff

查看 staged狀態(tài)的文件(add過的文件)

$ git diff --cached

查看 staged & unstaged (HEAD)

$ git diff HEAD 

reset

回到add之前狀態(tài)(unstaged)

$ git reset <file>

查看上次 commit 的HEAD指針指向的id

$ git reset --hard HEAD 

回到 commit 之前(回滾): hard 會清除 7cd4e4e 之后的所有操作提交

$ git reset --hard <commit id>

回到 commit 之前(回滾): soft 會保留 7cd4e4e 之后的所有操作

$ git reset --soft <commit id>

reflog

查看所有 HEAD 的改動,配合 reset --hard 的可恢復(fù)之前的刪除操作

$ git reflog

checkout

讓文件回滾到某一次 commit

$ git checkout <commit id> -- <file>

切換分支

$ git checkout dev1.0

創(chuàng)建并切換分支

$ git checkout -b dev1.0

branch

查看當前分支

$ git branch 

$ git branch -a #查看全部分支

創(chuàng)建分支

$ git branch dev1.0

merge

合并分支

$ git merge dev1.0

合并分支,保留分支上commit信息

$ git merge --no-ff -m "相關(guān)描述信息" dev1.0 

stash

暫存修改

$ git stash

查看 stash 中的暫存任務(wù)

$ git stash list 

繼續(xù)暫存任務(wù)

$ git stash pop

fetch

拉取遠程版本庫到本地版本庫(需要再次merge)

$ git fetch origin dev1.0

pull

拉取遠程版本庫到本地版本庫,并將其merge到本地項目中

$ git pull origin dev1.0

push

推送本地版本庫到遠程版本庫

$ git push -u origin dev1.0

常見問題

解決merge沖突

<<<<<<< HEAD
# edited in master
=======
# edited in dev
>>>>>>> dev

刪除"<<<<","====",">>>>"中問題code,重新提交

$ git commit -am "解決xxx沖突"

鏈接本地版本庫,并將分支 push 推送到Git上

$ git remote add origin git@github.com:LOLITA0164/PhotoBrowser.git
$ git push -u origin master     # 推送本地 master 去 origin
$ git push -u origin dev        # 推送本地 dev  去 origin

注意事項:

創(chuàng)建一個未初始化的遠程庫

正確姿勢出現(xiàn)如下圖樣式

正確樣式

出現(xiàn)fatal: remote origin already exists.錯誤

如果鏈接本地版本庫出現(xiàn)上面錯誤,嘗試刪除重試

$ git remote rm origin

pull時候出現(xiàn)fatal: refusing to merge unrelated histories

因為網(wǎng)上和本地的是不同的兩個倉庫,(網(wǎng)上的已經(jīng)初始化過了,這種情況通常是clone下來再開發(fā))如果需要合并,輸入以下命令嘗試

git pull origin <分支如master> --allow-unrelated-histories

Clone 克隆Git上的版本庫

git clone sourceAddress destinationAddress

如:

git clone git@github.com:LOLITA0164/PhotoBrowser.git ~/Desktop/PhotoBrowser

添加遠程分支到本地分支

$ git checkout -b dev1.1 origin/dev1.1

刪除本地分支

$ git branch -d dev1.1

過程

...

1、拉取最新需要開發(fā)的分支到本地(fetch、merge)
2、開發(fā)功能,push前,再次拉取最新code
3、1-2循環(huán)
4、版本完成,merge到master分支,將該版本push到遠程庫中
5、打上tag,release該版本
6、1-5循環(huán)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容