常用命令
创建分支
查看远程仓库
git remote -v
以origin/dev_1.0为模板,创建并切到dev_1.0 分支
git checkout -b dev_1.0 origin/dev_1.0
关联远程分支
git branch --set-upstream-to origin/google
删除远程分支
git push origin --delete release/YS_portal_new
推送本地分支到远程,指定远程分支名称
- 不指定远程分支名称就是默认本地分支同名
git push origin YS_portal_new:release/YS_portal_new
强制推送本地分支到远程
git push -u origin -f release/gs_mch
清空账号
git config --system --unset credential.helper
(这个是清空账号和密码,然后需要在输入账号和密码 所以还是第一种方法方便点)
比较文件
// https://blog.csdn.net/qq_36749906/article/details/113716994
git diff — 定位在工作区和暂存区做比较
git diff --cached / git diff --staged — 定位在暂存区和版本区做比较
git diff HEAD / git diff commit_ID — 定位在工作区和版本区作比较
git diff commit_ID1 commit_ID2 — 定位在版本库比较不同版本区别
git对比命令
git diff 工作区 vs 暂存区
git diff head 工作区 vs 版本库
git diff –cached 暂存区 vs 版本库
具体的文件比较
1.比较两次commit提交之后的差异:
git diff hash1 hash2 --stat
能够查看出两次提交之后,文件发生的变化。
2.具体查看两次commit提交之后某文件的差异:
git diff hash1 hash2 -- 文件名
3.比较两个分支的所有有差异的文件的详细差异:
git diff branch1 branch2
4.比较两个分支的指定文件的详细差异
git diff branch1 branch2 文件名(带路径)
5.比较两个分支的所有有差异的文件列表
git diff branch1 branch2 --stat
撤回上次全部的add(暂存区)
git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了
撤回上次分支合并
git rebase masterbranch
如果push了
git reset --mixed <版本号>
// 注意使用 --hard 参数会抛弃当前工作区,暂存区,本地版本区的修改
// 使用 --soft 参数的话会抛弃当前本地版本区的修改,但保留当前工作区和暂存区的修改,可以重新提交
//使用 --mixed 参数的话会抛弃当前暂存区和本地版本区的修改,但保留当前工作区修改,可以重新提交
如果此时使用命令:git push
会提示本地的版本落后于远端的版本
为了覆盖掉远端的版本信息,使远端的仓库也回退到相应的版本,需要加上参数–force
git push origin <分支名> --force
或者简写为
git push origin <分支名> -f
此外,如果是第一次想把本地git仓库的内容push到远程仓库也可以使用git push origin <分支名> -f 这种方式。
简写形式
HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD~1
如果进行两次的commit,想要都撤回,可以使用HEAD~2
修改注释
git commit --amend
同步远程分支信息到本地
git tag -l | xargs git tag -d #删除所有本地分支
git fetch origin --prune #从远程拉取所有信息
日志相关
查看日志
git log --graph --decorate --oneline --simplify-by-decoration --all
忽略不想提交的文件(忽略跟踪)
git update-index --assume-unchanged <file>
清空凭证管理器
git credential-manager uninstall
重置全局用户名
git config --global --unset user.name
用vim编辑全局配置文件
git config --global --edit
删除未跟踪文件
删除文件
# 删除 untracked files
git clean -f
删除文件以及目录
# 连 untracked 的目录也一起删掉
git clean -fd
忽略的文件目录也删除
# 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd
查看将要删除的文件和目录
# 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd
放弃本地commit
如果想放弃本地的文件修改,可以使用git reset --hard FETCH_HEAD,FETCH_HEAD表示上一次成功git pull之后形成的commit点。然后git pull
git放弃本地commit
git reset --hard FETCH_HEAD
清理文件
git clean -n
是一次clean的演习, 告诉你哪些文件会被删除. 记住他不会真正的删除文件, 只是一个提醒
git clean -xf
删除当前目录下所有没有track过的文件. 不管他是否是.gitignore文件里面指定的文件夹和文件
git reset --hard和git clean -f
是一对好基友. 结合使用他们能让你的工作目录完全回退到最近一次commit的时候