自己总结的思维导图Git
git基本命令
最近打算搞个web应用,练习一下新的技术栈,所以在github建了个私库
1 | clone https://github.com/coding-by-feng/keep-yourself.git |
git pull和git fetch
git pull
如果需要取回origin主机的erp01分支与本地的master分支合并,则写为:
1 | git pull origin erp01:master |
上面这句命令的意思相当于取回origin/erp01分支的代码在与当前的分支合并。
如果本地分支和远程分支之间建立了一种追踪的关系,那么我们git pull的时候就可以省略远程的分支名:
1 | git pull origing |
上面命令表明本地分支自动与队对应的origin主机追踪分支进行合并。
git 允许手动建立追踪关系:
1 | git branch --set-upstream master origin/erp01 |
git fetch
1 | git fetch <远程主机名>(origin)<分支名> |
如果想要取回特定分支的更新就可以指定分支名;
所取回的更新,在本地主机上要用“远程主机名/分支名”进行读取。比如origin主机的erp01,就要用origin/erp01读取。
接下来可以用git branch -r命令查看远程分支,如果用到 -a选项,则表明查看所有的分支;
如果你需要合并分支,就可以用merge或rebase:
1 | $ git merge origin/erp01 |
git pull和git fetch区别
这两个命令的主要区别在与:git pull是拉下更新后就自动合并本地分支,而git fetch是先吧更新拉下来,在用merge或rebase进行合并。
标签管理
1 | git tag(查看标签) |
分支管理
https://www.jianshu.com/p/2e162b544878
1 | git branch test1 |
强制更新本地和强制提交覆盖
https://www.cnblogs.com/boundless-sky/p/10842700.html
git commit回撤
Problem Solution
git仓库迁移(从github上拉下来的代码修改后push到自己的仓库)
1 | rm -rf .git //删除.git |
解决版本冲突
删除本地缓存(改变目录或文件成未track状态)
1 | # 目录的所有子目录和文件 |
The following paths are ignored by one of your .gitignore files:
git add 时如果报错:
1 | The following paths are ignored by one of your .gitignore files: |
可以强制加入版本控制:
1 | git add -f xxx.文件 |
或者在.gitignore删除对应的非版本控制配置
github项目不记录贡献度,格子不绿
https://www.jianshu.com/p/408efb964213
Push failed Invocation failed Server returned invalid Response. java.lang.RuntimeException: Invocation failed Server returned invalid Response. at
JetBrains系列软件git提交失败,解决方案:
https://zhuanlan.zhihu.com/p/136365170
解决git pull/push每次都需要输入密码问题
https://blog.csdn.net/m0_37633370/article/details/90439113
解决hexo tag或者categories大小写不区分的问题
- 打开.git目录下的config文件并修改ignorecase = true 为 ignorecase = false
- 将.deploy_git文件夹下面的内容删掉
- git rm -rf *
- git commit -m ‘clean all file’
- git push
- 重新编译push
- cd ..
- hexo clean
- hexo g -d
如果方法失效可以将tag随便改个名字重复上面步骤,然后改回来再重复一遍即可。
解决代码冲突
Your local changes would be overwritten by merge. Commit, stash or revert them to proceed.
Idea分支切换local changes存放在shelf
切换分支时选择SmartCheckout,本地的changes会被put到Shelf的Uncommitted changes里面,等下次分支checkout回来时,再将其Unshelve回来
LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
因为自己开了V2rayX的代理,将http和https请求代理到8001端口,所以需要添加一下配置:
1 | git config --global http.proxy http://127.0.0.1:8001 |