git
基本上是文件未被跟踪
, 文件添加到暂存区
, 文件有改动
, 文件提交到分支上
常用命令
git add .
# 添加所有的更新的文件到暂存区git commit -m "update"
# 将暂存区的内容全部更新到分支上git push origin branchName
# 本地分支同步到远程分支git pull origin branchName
# 远程分支内容拉取到本地分支上git checkout -b branchName
# 创建分支并切换到该分支git branch -D branchName
# 删除分支git log --oneline
# 打印分支的所有commit信息
reset
hard模式
git reset --hard HEAD~
( 退回到分支上一次commit, 并且距离上次commit的更改的信息也都没了1 2 3 4 5 6 7 8 9 10 11 12 13 14
echo "test" >> a.txt git add . git commit -m "update a.txt" git reset --hard HEAD~ git status # 结果 On branch test nothing to commit, working tree clean ls | grep a.txt # 结果为空
soft 模式
git reset --soft HEAD~
( 退回到分支上一次commit, 并且距离上次commit的更改的信息已经被git add .
了1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
echo "test" >> a.txt git add . git commit -m "update a.txt" git reset --soft HEAD~ git status # 结果 On branch test Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: a.txt ls | grep a.txt # 结果显示a.txt
mixed 模式
git reset --mixed HEAD~
( 退回到分支上一次commit, 并且距离上次commit的更改的信息还在本地
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
git merge -s ours master
master代码merge完回滚,还想再用之前的commit
如网站所示
- https://harttle.land/2018/03/12/reset-origin-without-force-push.html
rm
git rm --cached fileName
# 将已经提交到暂存区的文件 删除(本地还有这个文件)git rm -f fileName
# 将已经提交到暂存区的文件 删除(本地没有这个文件)
merge
git checkout branchName
# 切换到工作分支git merge srcBranch
# 将srcBranch
的内容copy到当前分支
tag
git tag -a tagName commitId
# 打taggit tag -l
# 查看本地所有的taggit tag -d tagName
# 删除本地taggit push origin tagName
# 上传远程分支git push origin --delete tagName