github文件地址 后面 加上 #L行数 打开时能转到指定的行
本地项目和远程仓库关联
- git init
- git add .
- git commit -m "" -a
- 创建远程仓库
- git remote add origin git地址
- 关联分支 git branch --set-upstream-to=origin/master master (git push -u origin master 命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。)
拉取远程分支到本地的2种方法(本地不存在该分支)
git fetch
git checkout -b dev origin/dev
git pull origin dev:dev
版本回退
git reset和git revert
git revert commit -m 1 merge操作回退,撤销merge操作,1 代表回退到 merge 后的第一个提交ID对应的版本,2 代表回退到 merge 后的第二个提交ID对应的版本,git status 查看:
git reset --hard commit 删除commit对应提交,但是基本上都不允许删除,为了安全考虑,使用git revert,它是做一次新的提交,只是这一次提交和要回退的内容相反,正好把不需要的提交给覆盖掉
git revert commit 非merge操作回退,commit提交都会被抵消,git revert 是 撤销 某次操作,此次操作之前和之后的commit都会被保留,并且 会把这次 撤销 作为一次最新的提交;
revert之后,修改好分支再merge到master发现之前merge的代码不能merge到master上了,这是因为master上已经有了之前的merge历史了
解决办法:revert之前revert的commit_id
git stash save "xxx" //储存进度
git stash list //查看所有储存
git stash pop //弹出最新的进度
git stash drop stash@{1}
git stash apply stash@{1} //恢复进度,但不从stash里删除
git stash pop stash@{1} //恢复进度,然后从stash里删除
git branch -vv //查看本地分支与远程分支的对应关系
删除远程分支
git push origin :issues_3126(branch_name)
合并分支
git merge b //合并后提交历史会按时间混合在一起
git rebase b //合并后提交历史会直接在后面,不会乱(看起来不是并行开发的)