文章目录
一些常用的git命令
- 查看已暂存的修改文件
git diff --cached
使用git diff --cached可以查看已经暂存(add)的文件。
- 撤销文件修改
git checkout < file >
如果文件被我们改的乱七八糟,不想要了,可以使用git checkout test.txt可以将文件test.txt恢复到上一个提交状态。
- 撤销暂存文件
git reset HEAD < file >
如果不小心使用git add *,将不想暂存的文件也添加了,可以使用该命令。
- 将所有文件回退到上一版本
git reset HEAD^
- 将某个文件test.txt回退到上一版本
git reset HEAD^ test.txt
- 本地回退到某次commit
git reset --hard commitID
如果不加–hard,当前的文件状态还是不变的,需要加上–hard才会恢复到commitID的状态
- 远程删除某次提交
git reset --hard commiID
git push -f
- git reset后悔了
如果git reset 想要恢复回去,使用git reflog可以查看之前有哪些commit,找到你要恢复的commitID,重新git reset commitID即可。
- 从仓库中删除文件但本地保留
git rm --cached < file >
我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。 换句话说,你想让文件保留在磁盘,但是并不想让 Git 继续跟踪。 当你忘记添加 .gitignore 文件,不小心把一个很大的日志文件或一堆 .a 这样的编译生成文件添加到暂存区时,这一做法尤其有用。 为达到这一目的,使用 --cached 选项。
- 查看提交历史
git log
git log 会按提交时间列出所有的更新。
- 查看最近n条提交
git log -n
例如git log -3 可以查看最近的3条提交
- 查看详细的提交历史
git log -p
git log -p -3 可以查看最近的3条提交的详细修改信息
- 只查看提交修改了哪些文件
git log --name-only
- 快速提交
git commit -m “string”
使用git commit -m "modify something"可以快速提交
- 撤销提交
git commit --amend
单提交后发现少添加了某个文件,可以将该文件添加后,重新使用git commit --amend,再重新编辑提交信息,就会覆盖上一次的提交。
- 创建分支并切换到该分支
git checkout -b branch_name
使用checkout -b可以在创建分支之后切换到该分支,如果后面不添加其他分支,则表示以当前分支为模板。
- 将本地分支推送到远程
git push origin feature-branch:feature-branch
推送本地的feature-branch(冒号前面的)分支到远程origin的feature-branch(冒号后面的)分支(没有会自动创建)
- 查看当前分支是从哪个分支拉的
git branch -vv
- 删除远程分支
git push origin :branch-name
冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支