【轉載】git常用指令

https://zhuanlan.zhihu.com/p/52654681

學習網站及本文插圖來源

Git教程

創建版本庫

mkdir text
cd text
git init

把文件添加到倉庫

- git add: 把要提交的所有修改放到暫存區(Stage),可以add多次,添加多個文件

- git commit:一次性把暫存區的所有修改提交到分支,把所有add的文件一次性提交到分支,相當於遊戲的一次次的存檔,如此可回到某次commit狀態

- git log:查看提交(commit)歷史

- git log --pretty=oneline:簡化版歷史commit信息

- git push:以上兩個操作都是針對本地倉庫的,push可將修改提交到遠程倉庫

git add text.txt
git commit -m "提交信息"

回到上一版本

- HEAD:當前版本

- HEAD^:上一個版本

- HEAD^^:上上個版本

- HEAD~100:上一百個版本

- 回退版本命令:git reset

- 查看命令歷史:git reflog

git reset --hard HEAD^
# git reset --hard commit_id

工作區和暫存區

- git add:添加到暫存區stage

- git commit:把暫存區的內容提交到分支(提交後暫存區爲空,工作區對比倉庫無修改,提示“nothing to commit, working tree clean”)

管理修改

- 查看工作區和版本庫的區別:git diff HEAD -- readme.txt

撤銷修改

- 丟棄工作區的修改: git checkout -- file

- 撤銷暫存區的修改:git reset HEAD file

刪除文件

- 從版本庫中刪除文件:git rm fileName & git commit

- 恢復刪除的文件:git checkout -- fileName

創建與合併分支

- 每次提交git都把他們挨個按時間先後串成一條線,這條時間線就是一個分支

- 一開始只有master分支,它是一條線,git裏master指向最新的提交,HEAD再指向master

- HEAD指向當前分支,當前分支的名字是個指針,指向跟master相同的提交

- 創建一個分支的原理:新增一個指針,用HEAD指向該指針

- commit:在某分支上commit相當於增長時間線,分支的指針移動到該提交,master指針停留原地。

- checkout:HEAD指向該分支指針

- merge:與目標分支指針指向同一個commit

- -d:刪除分支指針(刪除分支)

- 查看分支:git branch

- 創建分支:git branch <name>

- 切換分支:git checkout <name>

- 創建+切換分支:git checkout -b <name>

- 合併某分支到當前分支:git merge <name>

- 刪除分支:git branch -d <name>

解決衝突

- 場景:a分支欲提pr合併到master分支上但是二者有部分文件有衝突

git checkout master
git pull
git checkout a
git merge master
衝突並可以在代碼中看到衝突提示!
修改保存
git add xxx.js
git commit -m "conflict fixed"
git push

- 查看分支合併情況:git log --graph --pretty=oneline --abbrev-commit

- 查看衝突文件:git status

- 臨時切換分支保存現場:git stash

- 恢復現場:git stash pop(需切回原分支)

- 在本分支最後一次commit基礎上合併另一分支的commit:git rebase xxx

git checkout a
git rebase master
衝突!
修改衝突並保存
git add xxx.js
git rebase --continue

標籤

- 創建標籤: git tag v1.0

- 給某次commit添加標籤:git tag v1.0 commitID

- 查看標籤: git tag

- 查看標籤信息:git show v1.0

- 刪除標籤:git tag -d v1.0

- 推送標籤到遠程:git push origin v1.0

- 一次推送所有未推送標籤到遠程:git push origin --tags

- 刪除遠程標籤:git tag -d v1.0 & git push origin :refs/tags/v1.0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章