1. git提交代码流程
Git提交代码的流程——新手适用 - 你猜怎么着 - 博客园 (感谢此文作者)
pull:是下拉代码,相等于将远程的代码下载到你本地,与你本地的代码合并
push:是推代码,将你的代码上传到远程的动作
完整的流程是:
第一种方法:(简单易懂)
1、git add .(后面有一个点,意思是将你本地所有修改了的文件添加到暂存区)
2、git commit -m""(引号里面是你的介绍,就是你的这次的提交是什么内容,便于你以后查看,这个是将索引的当前内容与描述更改的用户和日志消息一起存储在新的提交中)
3、git pull origin master 这是下拉代码,将远程最新的代码先跟你本地的代码合并一下,如果确定远程没有更新,可以不用这个,最好是每次都执行以下,完成之后打开代码查看有没有冲突,并解决,如果有冲突解决完成以后再次执行1跟2的操作
4、git push origin master 将代码推至远程就可以了
第二种方法:
1、git stash (这是将本地代码回滚值至上一次提交的时候,就是没有你新改的代码)
2、git pull origin master(将远程的拉下来)
3、git stash pop(将第一步回滚的代码释放出来,相等于将你修改的代码与下拉的代码合并)
然后解决冲突,你本地的代码将会是最新的代码
4、git add .
5、git commit -m""
6、git push origin master
这几步将代码推至了远程
最后再git pull origin master 一下,确保远程的全部拉下来,有的你刚提交完有人又提交了,你再拉一下会避免比的不是最新的问题
2. gitlab上新建一个分支,然后将本地另一个分支上的项目提交到这个新建的分支
情景描述:远程稳定版本merge,项目需要集成kafka,在本地merge分支上开发完成以后,考虑到集成kafka这个版本的稳定性未知,需要在测试环境测试后,方可合并到merge分支。所以决定新建分支merge-kafka,将本地merge分支上集成了kafka的代码提交到远程merge-kafka分支。
1、在gitlab仓库中新建一个分支merge-kafka(gitlab界面操作,新的分支create from 选择merge分支)
2、git stash(将本地修改的代码暂存起来,此时本地merge分支代码为上一次拉取时的状态。在我们开发集成kafka的这段时间,远程merge分支上可能别人已经再次提交过代码,所以我们需要把别人在这段时间提交的代码拉下来)
3、git pull origin merge(将远程merge分支上的代码拉取下来,这步以后,本地merge分支的代码与远程merge分支的代码同步)
4、git stash pop (将我们暂存的集成kafka的代码释放出来,释放的时候可能会有冲突)
5、解决冲突
6、git add .(最后的 . 表示将所有本地的修改提交)
7、 git commit -m "<提交要写的注释>"
8、git push origin merge:merge-kafka
3. 将本地新工程推送到远程仓库
1. 远程建立仓库(已有仓库直接下一步)
2. git init --在本地工程下初始化一个git仓库
3. git add . --将本地文件全部添加到暂存区
4. git commit -m "首次提交" -- 提交文件
5. git remote add origin xxx //xxx是git仓库的地址 -- 将本地仓库与远程仓库建立连接
6. git branch --set-upstream-to=origin/master master - 将本地分支与远程分支建立连接;前者是远程分支,后者是本地分支
7. git pull origin master -- 拉取远程代码
8.如果执行7出现错误“fatal: refusing to merge unrelated histories”,则执行 $git pull origin master --allow-unrelated-histories
9.执行完7或8 可能会出现远程代码与本地代码分支冲突,正常解决冲突即可
10. git push origin master -- push代码到远程分支
4. git 设置本地用户名和邮箱
git 提交代码时用的用户名和本地开发环境的用户名是两个概念。git记录到底是谁开发了代码时,不是以提交时用的用户名的为准,而是git本地的配置的用户名和邮箱。
用git config --global user.name "your name"命令来设置你的用户名
用git config --global user.email "your email"命令来设置你的邮箱
然后用git config user.name/email来查询是否设置成功
5.git 拉取远程的新分支,本地没有该分支
git fetch origin branchname:branchname
可以把远程某各分支拉去到本地的branchname下,如果没有branchname,则会在本地新建branchname
git checkout origin/remoteName -b localName
获取远程分支remoteName 到本地新分支localName,并跳到localName分支
6. 代码写错分支,写完才发现
git stash/git stash pop 很好用,可以将代码暂存起来,然后释放到任何一个分支。例如:代码已经写完了,发现写在了master分支,但是应该写在dev分支,并提交到远程dev。这时候可以先git stash,然后切换到dev分支,然后git stash pop,代码就转移到了dev分支上啦。
7. 将master分支内容合并到dev分支
1、切换到你所在分支dev:git checkout dev
2、git merge master
3、将本地内容push到dev分支:git push