分支合并
. gitattributes 的使用:设置某个文件不合并到目标分支中 列:A分支下的 aa.js 不合并到B分支下
步骤一:
被合并的A分支 -> 下添加:. gitattributes 文件
/***
里面内容书写被过滤的不合并的文件 一行表示一个
**/
.gitattributes merge=ours
bb.js merge=ours
步骤二:
在git 控制台中输入 激活这个命令 合并就会启动被过滤的文件
git config --global merge.ours.driver true
步骤三:
然后进行分支合并操作
分支操作
# 列出所有本地分支
$ git branch
# 列出所有远程分支
$ git branch -r
# 列出所有本地分支和远程分支
$ git branch -a
# 新建一个分支,但依然停留在当前分支
$ git branch [branch-name]
# 新建一个分支,并切换到该分支
$ git checkout -b [branch]
# 新建一个分支,指向指定commit
$ git branch [branch] [commit]
# 新建一个分支,与指定的远程分支建立追踪关系
$ git branch --track [branch] [remote-branch]
# 切换到指定分支,并更新工作区
$ git checkout [branch-name]
#如果只是简单的将feature分支的文件f.txt copy到master分支上
#步骤一:切换至要拷贝的分支
$ git checkout master
#步骤二:指定某个分支下的某个文件拷贝至步骤一分支中
$ git checkout feature f.txt
# 切换到上一个分支
$ git checkout -
# 建立追踪关系,在现有分支与指定的远程分支之间
$ git branch --set-upstream [branch] [remote-branch]
# 合并指定分支到当前分支
$ git merge [branch]
# 选择一个commit,合并进当前分支
$ git cherry-pick [commit]
# 删除分支
$ git branch -d [branch-name]
# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
文件撤销恢复
# 恢复暂存区的指定文件到工作区
$ git checkout [file]
# 恢复某个commit的指定文件到暂存区和工作区
$ git checkout [commit] [file]
# 恢复暂存区的所有文件到工作区
$ git checkout .
# 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
$ git reset [file]
# 重置暂存区与工作区,与上一次commit保持一致
$ git reset --hard
# 重置当前分支的指针为指定commit(为要还原的某个指定版本),同时重置暂存区,但工作区不变
$ git reset [commit]
# 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
$ git reset --hard [commit]
#彻底返回上一次提交前的版本
$ git reset --hard HEAD~1
# 重置当前HEAD为指定commit,但保持暂存区和工作区不变
$ git reset --keep [commit]
# 新建一个commit,用来撤销指定commit
# 后者的所有变化都将被前者抵消,并且应用到当前分支
$ git revert [commit]
# 暂时将未提交的变化移除,稍后再移入
$ git stash
$ git stash pop