代码提交流程

0.每天来公司的第一件事就是更新代码(git pull)
1.流程:一般情况下,我们都是在test-dev分支上进行开发,当开发完成后,我们将代码push到test-dev分支上,接着,从在远程master分支上创建一个自己的master-xhc分支,将远程的master-xhc分支更新到本地,然后将要提交的代码(不提交的不用放)放到master-xhc分支上,提交,然后将本地master_xhc推送到远程分支就行。
在这里插入图片描述

2.登陆gitlab,提交合并请求,等待代码审核人员审核代码http://git.webtrn.cn。
在这里插入图片描述

3.待代码审核通过以后,在代码确认平台发送确认邮件http://192.168.20.57:27295/。
4.接着切回到test-dev分支上,继续你的开发把!

git merge test_dev_tmp //将test_dev_tmp合并到当前分支
git push origin --delete master_zhengnan //删除远程分支
git branch -m master old-master //修改分支名称
git push -f origin master_zhengnan //将分支推送到远程分支
git fetch origin master:master_zhengnan //从master打一个新的分支,分支的名字叫
git commit -m ‘注释’
git push origin master_zhengnan //将分支提交到远程

我的===
先在test-dev分支上进行开发,开发完成后(记得防止全+全-的问题, 更改File --》 convert line Delimiters to --> unix),(如果是新建的文件,得先将文件添加到暂存态,在eclipse中点击add index即可)然后在eclipse 中选择commit -->commit and push (别选错了)。
git fetch origin master:master_xuehuichen(从远程给本地打一个分支)
git checkout master_xuehuichen(切换到本地分支)
git checkout test-dev 文件目录 (从src开始,多个文件以空格 隔开)
git commit -m ’ 这是注释 ’ (提交到本地分支)
git push origin master_xuehuichen(推送到远程分支)
2.登陆gitlab,提交合并请求,等待代码审核人员审核代码http://git.webtrn.cn。

3.待代码审核通过以后,在代码确认平台发送确认邮件http://192.168.20.57:27295/。
4.接着切回到test-dev分支上(git checkout test-dev) ,继续你的开发把!
5.删除本地分支git branch -D master_xuehuichen
指定本地分支对应的远程分支:git branch --set-upstream-to=origin/test-dev

删除本地和远程不一致的分支
git remote prune origin
回退到最新状态
git reset --hard HEAD

如果开发人员将master和test-dev分支重新整理,那么在test-dev分支上执行如下命令
git fetch --all
git reset --hard origin/test-dev
git pull

或,先切换到其他分支, 将本地的test-dev删除,然后重新打一个test-dev分支
删除本地分支git branch -D master_xuehuichen
重新打一个分支 git fetch origin test-dev:test-dev

$ git push origin --delete <branchName>

恢复远程一致的终极神器(一般情况切勿使用!!!)
git fetch --all
git reset --hard origin/test-dev
git pull

如果不行就重新打一个分支,
在这里插入图片描述
在这里插入图片描述

把原来的引用删除
在这里插入图片描述

还有就是,如果文件冲突了,如果自己没有改过该文件,就直接把自己的那部分删除了

很多文件情况下提交文件=======
当有很多文件需要提交的时候,不可能一个一个复制,如下步骤
1、将文件提交到test-dev上,然后在test-dev分支上将要提交的文件在eclipse中检出到桌面,
2、切换到master_xuehuichen分支,在windows环境下将刚才导出的文件夹覆盖项目的位置(src)
3、需要add的话就add,不需要就commit 然后将本地master_xuehuichen推送到远程,合并master即可,
4、切换到test-dev继续开发。

当你要提交的文件中包含编译后的文件,那么它一般是被添加到了git忽略的名单中,这时候你是提交不上去的,
做法:切换到navig 视图,找到该文件对应的.ignore文件,先将忽略删除。而后将要提交的文件add index ,之后将.ignore文件恢复原样,这时候,就可以提交此文件了。如下图所示
在这里插入图片描述


当你早上高高兴兴打开git黑窗口,输入git pull 的时候,却发现今天git和往常有些不一样,他会在控制台多打印出一些你平时见不到的提示
Auto packing the repository in background for optimum performance.
See “git help gc” for manual housekeeping.
这时候你就懵逼了,我啥都没干啊,怎么会出现这个错误。其实,这是因为git中的松散对象太多了,git不堪重负,只需要清理这些垃圾就可以
敲入 “git gc”即可,可是这时却报错
Rename from ‘.git/objects/pack/pack-e3f69d1da4c4462f6b5dd136d481e158c21eb34e.pack’ to ‘.git/objects/pack/old-e3f69d1da4c4462f6b5dd136d481e158c21eb34e.pack’ failed. Should I try again? (y/n) n
这是弄啥嘞~~~~~~
别急,你看看是否是你的eclipse开着,如果eclipse开着,那你就把它关了,再试一遍,这时候你会发现,好了??!!!
就是因为eclipse开着占用着一些git的文件,这些文件被占用,所以无法对他们进行操作。这次在运行git pull 就可以正常开发了!!


在这里插入图片描述

-----------还原master代码流程
先打一个之前的分支
在这里插入图片描述

接着,打一个最新的分支
在这里插入图片描述

将要还原的文件从上一个分支checkout 到最新的分支
在这里插入图片描述


Git:代码冲突常见解决方法

如果系统中有一些配置文件在服务器上做了配置修改,然后后续开发又新添加一些配置项的时候,
在发布这个配置文件的时候,会发生代码冲突:
error: Your local changes to the following files would be overwritten by merge:
protected/config/main.php
Please, commit your changes or stash them before you can merge.
如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:
方法1:如果你想保留刚才本地修改的代码,并把git服务器上的代码pull到本地(本地刚才修改的代码将会被暂时封存起来)
git stash
git pull
git stash pop
然后可以使用git diff -w +文件名 来确认代码自动合并的情况.

反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
git reset --hard
git pull
其中git reset是针对版本,如果想针对文件回退本地修改,使用
[plain] view plain copy
git checkout HEAD file/to/restore

git stash和git stash pop

git stash 可用来暂存当前正在进行的工作, 比如想pull 最新代码, 又不想加新commit, 或者另外一种情况,为了fix 一个紧急的bug, 先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作。
基础命令:
$git stash
$do some work
$git stash pop

进阶:
git stash save “work in progress for foo feature”
当你多次使用’git stash’命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,
’git stash list’ 命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用’git stash apply stash@{1}’就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用’git stash clear’来将栈清空。

git stash # save uncommitted changes

pull, edit, etc.

git stash list # list stashed changes in this git
git show stash@{0} # see the last stash
git stash pop # apply last stash and remove it from the list

git stash --help # for more info

----------------------------自己的项目-----------------------------------合并分支
在这里插入图片描述

强制切换分支:git checkout test-dev -f

今天遇到一个问题:在test-dev上面同时开发两个功能模块,一个已完成、一个未完成,未完成的是新建的两个文件,我将他们添加到了git index,并没有提交到远程test-dev,我只提交已经完成的代码到test-dev。当我fetch下来一个master_xuehuichen 分支后,我只是将已经完成的代码切换到master_xuehuichen上,没完成的没有切换,当我推送远程之后,在切回到test-dev后,我之前添加到git index中的代码消失了!!!以后,没完成的功能也要提交到test-dev!!!

猜你喜欢

转载自blog.csdn.net/nonage_bread/article/details/112217093