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的更改的信息也都没了
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 .
了
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的更改的信息还在本地
echo "test" >> a.txt
git add .
git commit -m "update a.txt"
git reset --mixed HEAD~
git status
# 结果
On branch test
Untracked files:
(use "git add <file>..." to include in what will be committed)
a.txt
nothing added to commit but untracked files present (use "git add" to track)
ls | grep a.txt
# 结果显示为 a.txt
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