##Git创建分支及管理
从当前分支拉copy开发分支 git checkout -b dev
删除本地分支 git branch -d xxxxx
删除远程分支 git push origin --delete < branchName >
推送本地分支: git push origin local_branch:remote_branch
git pull origin remote_branch
git fetch origin remote_branch
git merge branchname
这个命令把分支"branchname"合并到了当前分支里面。
git branch --set-upstream-to= < remote >
将当前分支与远端对应分支对接
git branch --set-upstream-to=origin/xxx xxx
指定某本地分支与远端分支对接
git checkout -b dev origin/dev
作用是checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支
##Subtree的使用
git remote add -f lib-xxx-xxxx http://gitlab.xxxx.com/xxxx.git
关联远程库并fetch到本地,取名为lib-xxx-xxxx
git subtree add --prefix=lib-xxx-xxxx lib-xxx-xxxx master --squash
将前一步fetch到本地的库工程lib-xxx-xxxx作为subtree进行管理
git subtree pull --prefix=lib-xxx-xxxx lib-xxx-xxxx master --squash
更新subtree下该工程
git subtree push --prefix=lib-xxx-xxxx lib-xxx-xxxx master --squash
提交本地对subtree下该工程的更新
把本地tag推送到远程
git push --tags
git push origin < tagname >
删除本地tag
git tag -d < tagname >
删除远程tag
先删除本地tag,再:
git push origin :refs/tags/< tagname >
获取远程tag
git fetch origin tag < tagname >
如果你在创建.gitignore文件之前就已经push项目了,那么即时你在.gitignore文件中写入新的规则,这些规则也不会起作用。
##取消文件跟踪
有时候在项目开发过程中,突然心血来潮想把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached -f xxx.idea //-r 递归、-f 强制、–cache缓存
git add . //重新添加
git commit -m ‘update .gitignore’
##回滚到某个版本
查看指定次数的提交记录
git log -3
commit 4dc08bb8996a6ee02f
Author: Mark xxx@xx.com
Date: Wed Sep 7 08:08:53 2016 +0800
xxxxx
commit 9cac9ba76574da2167
Author: xxxxx@qq.com
Date: Tue Sep 6 22:18:59 2016 +0800
improved the requst
commit e377f60e28c8b84158
Author: xxxxxx@qq.com
Date: Tue Sep 6 14:42:44 2016 +0800
回滚到指定的版本
git reset --hard e377f60e28c8b84158
强制提交
git push -f origin master