一:需求背景.
1.1 多人开发合作,其中甲同学维护远程主分支master,乙同学开发了一个新功能,经过甲乙丙同学共同协商一致认为该功能可行,于是甲同学决定将这个分支合并到远程仓库的master分支上去.
1.2 首先是乙同学拉取远程最新的远程仓库.
git remote rm origin
git remote add origin git_url
git pull
1.3 乙同学开发新功能,和大伙并行开发. 在本地新建一个分支.
git checkout -b function(并在当前分支下创建一个introduce.md文件模拟新功能)
1.4 推送本地分支到远程仓库分支.
git push origin function
1.5 查看远程仓库分支.
1.6 将本地fuction分支开发内容推送至远程的开发分支function.
git add introduce.md
git commit -m "提交描述"
git push origin function:function(提交本地function分支至远程仓库function分支,如果远程分支不存在就会自动创建,自己测试过可以成功推送的).有三种写法.最后一个参数是目标位置,方便记忆.
① git push <远程主机名> <本地分支名>:<远程分支名>
② git push <远程主机名> <本地分支名>(直接推送一个和本地分支同名的远程分支,如果不存在就会新建一个的)
③ git push : <远程分支名> 这个就是使用一个空的本地分支更新一个远程分支的内容,就相当于删除远程分支.
1.7 远程仓库分支内容查看.
1.8 甲同学IDEA下获取乙同学提交的分支新功能.
首先是甲同学IDEA是在自己的本地dev分支下开发的.
首先是远程的分支拉到本地.但是不合并哟.(没有和任何一个分支合并!,只是有选择的合并.相比git pull更安全一些.)
上述操作新建一个本地分支.
拉取最新的远程分支内容到本地.并且和当前的function分支合并.
此时本地的function分支是最新的内容,接下来看看这个新的功能要不要合并到本地Master分支上去了.
甲同学感觉新功能很不多,于是将IDEA切换至本地Master分支.准备合并到本地的Master分支上去.
合并本地的function内容至Master分支上.
push至远程仓库
将之前本地仓库的修改文件一并提交至远程仓库主分支上.
二:Git实用
2.1 将远程仓库分支拉取到本地分支的方式方法总结.fetch是将远程仓库的文件下载到本地,但是不合并,如果要想合并到当前分支或者是本地指定的分支,需要git merge命令帮助一下.
git fetch origin(不指定分支名就是远程全部分支).
git fetch origin XXX(拉下远程指定的分支).
例如当前本地是master分支.要拉取远程的function分支到本地的function分支.
git fetch origin function
git checkout -b function(本地分支名) origin /function(远程分支名)
git pull origin function
FECT_HEAD(解释一下,是指某个branch在服务器的最新状态).
每一个执行fetch操作,都会存一个FETCH_HEAD列表.列表保存的位置如上图所示.
这个当前分支指向的FETCH_HEAD,就是这个文件第一行对应的那个分支.
如果没有指定就是将远程的Master分支作为FETCH_HEAD.
如果指定的远程分支,那这个远程分支作为FECT_HEAD.
2.2 IDEA下删除本地分支和远程分支.
删除本地的function分支.(git branch -d XXX)
删除远程仓库的function分支.git push origin :XXX(用一个空的本地分支更新远程分支).
2.3 git diff命令
git diff(不带参数).比较是工作区和暂存区的文件修改.
IDEA下编写GIT命令也是棒棒的.使用方便,视觉上也更舒适一些吧.
2.3 git push -all <远程主机>(将本地的所有分支都推送至远程主机).
2.4 git status (查询仓库的状态)
2.5 git log(查看仓库历史记录)(详细版)
2.6 查看历史提交所有版本的CommitID
2.7 git checkout -- file(撤销工作区的修改).
例如这里在本地的test分支下新建了一个文件,并且添加内容.
2.8 git reset HEAD 文件名
先总结到这里,初学者经验少嘛,不妥的地方欢迎修正.