注意:所有文章除特别说明外,转载请注明出处.
1.git rebase
git合并代码主要有两种方式:
1.merge处理,这是我们比较能理解的方式。
2.rebase处理,中文此处翻译为衍合过程。
2.git update-index –assume-unchanged PATH
表示手动设置不要检查特定文件的更改情况。
注意:另外git提供了另外一种exclude的方式来完成同样的事情,不同的是.gitignore这个文件本身会提交到版本库中去。用来保存公共的需要排除的文件。.git/info/exclude设置的是我们自己本地需要排除的文件。这不会影响到别人,也不会提交到版本库中去。
$ git update-index --assume-unchanged /path/to/file #忽略跟踪
$ git update-index --no-assume-unchanged /path/to/file #恢复跟踪
3.Git工作流程
git -
commit -a 将workspace程序提交到local repository
add (-u) 将workspace程序提交到index(暂存区)
commit 将index程序提交到local repository
push 将local repository程序推到remote repository
pull/rebase 将remote repository程序拉到workspace
fetch 将remote repository程序拉到local repository
checkout head 将local repository到workspace
checkout 将index到workspace
diff head 将local到workspace
diff 将index到workspace
注:
4.git命令
4.1 创建与合并分支
1.git branch 查看当前分支
2.git checkout -b <name> 创建并切换到dev分支
3.git checkout <name> 切换分支
3.git merge dev 将dev分支合并到master,当然首先需要切换回到master分支
4.git merge 该命令表示合并指定分支到当前分支
5.git branch -d <name> 删除分支
4.2 解决冲突
如果两个分支上的程序出现冲突,即就是两个分支上的程序都被改动之后,那么在两者合并的过程中就会产生冲突。
1.git status 了解冲突的文件
注意:在git无法自动合并分支的时候,首先应该解决冲突,然后再提交合并。
2.git log --graph 该命令可以看到分支合并图
4.3 分支管理策略
1.git merge --no-ff <name> 该命令表示禁用fast forward 快速合并 分支
提示:分支策略,在实际开发过程中,按照几个基本原则进行管理,平时不在master分支上干活,这分支是用来发布新版本。
4.4 多人协作
1.git remote -v 查看远程库信息
2.git push origin <name> 从本地推送分支,推送失败 git pull 抓取远程的新提交
3.git branch --set-upstream branch-name origin/branch-name 建立本地分支和远程分支的关联
4.5 标签管理
1.命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id
2.命令git tag -a <tagname> -m "blablabla..."可以指定标签信息
3.命令git tag可以查看所有标签
4.命令git push origin <tagname>可以推送一个本地标签
5.命令git push origin --tags可以推送全部未推送过的本地标签
6.命令git tag -d <tagname>可以删除一个本地标签
7.命令git push origin :refs/tags/<tagname>可以删除一个远程标签
4.6 自定义git
如果想要忽略到一些文件的时候,可以在.gitignore文件中填写,同时该文件可以被版本管理。
不上传LocalController.java和local文件夹文件
1.找到 E:\projects\WebOA\.git\info 路径
2.修改该路径下的语句:
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
src/main/java/cn/edu/xidian/see/controller/LocalController.java
src/main/webapp/WEB-INF/views/local/*