【转载】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

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