Git学习笔记
本地代码初始化到远程仓库
1 | //create a new repository on the command line |
更新代码时,本地冲突无法更新
错误信息:
error: Your local changes to the following files would be overwritten by merge:
laravel/app/Services/ExpressService.php
Please commit your changes or stash them before you merge.
解决办法:
1 | git stash |
如果希望更新时覆盖本地文件,命令如下:
1 | git reset --hard |
回退到某个历史版本
首先查看要回退到哪个历史版本id:
1
git log
回退。比如id为784dd834b250d634a7686f28a7c323d5c6402e90
1
2//该回退动作会将本地所有改动回退,所以一定要记得stash。
git reset --hard 784dd834b250d634a7686f28a7c323d5c6402e90如果想将回退的版本推送到远程服务器,再用push。只回退本地不用此操作:
1
git push -f origin master
使用git stash命令进行代码暂存
当我们开发过程中,经常会遇到开发进行了一半,需要切换到另外一个分支的情况。stash命令可以将你现在所有变动进行暂存,后续切换回来时,从暂存中恢复就可以了。stash真的是很好用的工具。
1 | //暂存 |
为了保持git栈的清洁,推荐大家使用git stash pop相关命令
分支命令
1 | #查看远程分支 |
fatal: refusing to merge unrelated histories
通常是因为本地仓库的历史记录,与远程仓库的历史记录不同,git认为是两个完全无关的项目,无法pull
解决办法:
1 | git pull origin master ----allow-unrelated-histories |
代码提交到不同仓库
- 手动分别推送(如果需要两个库代码不同)
1 | // 添加仓库,并设置别名 |
- 一键push所有库(两个库代码完全一样)
1 | //将新仓库URL绑定到origin上 |
修改远程仓库地址
命令修改
1
git remote set-url origin http://*****.git
先删除再添加
1
2git remote rm origin
git remote add origin http://*****.git配置文件修改
1
2
3cd ***/.git
vim config
# 然后修改
rebase提交
通常我们都会拉取分支,提交代码时从自己分支往主分支上merge,当分支比较多时,分支树会显得很乱。
使用rebase,将自己分支每次重置为主分支记录,再提交,全程只有主分支的提交历史,比较清晰
1 | git add . |
修改commit内容
1 | git commit --amend |