Git 自己的一些工作中的总结
这个网址很重要:https://gitee.com/progit/2-Git-%E5%9F%BA%E7%A1%80.html#2.4-%E6%92%A4%E6%B6%88%E6%93%8D%E4%BD%9C
一、fork 别人的代码之后到自己本地,如果别人代码更新了,如何在自己本地区同步更新?
第一步:
首先 配置一个被自己fork 下来的项目的 原来的仓库地址(原项目所在的github的地址),命令如下:
git remote add upstream <原仓库的 github 地址>
然后用 git remote -v 查询一下当前有哪些源,如图
第二步:
如果你只想要拉取远程仓库的代码到本地(我用A表示原项目,B表示自己fork下来的项目),即把 A 新的代码更新到 B ,但是不合并。命令如下
git fetch upstream
如果要拉取并且将新的代码合并到自己本地项目中,命令如下:
git pull upstream
(注意,无论是fetch还是pull 都是将远程代码拉取到了 你当前所在的分支中的。)
如果你想要拉去的只是原仓库的某个分支下的内容的话,只需在后面加上原仓库分支名即可,代码如下
git pull upstream dev
这样就将新的项目更新到本地了。
二、如何提交一个干净的 pr(pull request)?
领导让你从克隆下来的代码中进行修改,将修改完的代码提交一个pr,而且只要今天的这次修改,昨天的修改不看,如何做呢?
一开始提交的时候,很难受,每次在本地检查提交的是这次的修改,可是commit,然后push 之后发现,在github 上提交的是当前分支上之前所有的修改,为此没少被说(尴尬)。
那正确的方法是什么呢?
1、首先要fetch 新的代码到本地,确保代码是最新的,别修改了之后发现冲突了。
2、通过 git checkout upstream/dev 注意是upstream 源的 dev分支。
3、然后在这个dev 分支下git branch dev1 ,新建一个dev1分支,他的dev 的分支。
4、此时,准备工作已经做完了,现在开始对代码尽情的蹂躏,把玩,完事儿之后,给个交代。提交你的改动,我是借助 pycharm 进行提交的 (GitHubDesktop也可以),如图
快捷键(Ct'r'l + K)
1区:你修改的所有代码,对于不想提交的代码,可以勾选前面的checkbox 选项框。
2区:你的备注信息
3区:是两次代码的对比
5、接着就是push 你 commit 的代码,(快捷键 Ctrl + Shift + K),如图
如果有你提交的 也有别人提交的 你要怎么办呢?如果不处理就全交上去了,会被开批斗会的。注意pycharm 有这个功能。
看图下边 有一个 Current Bashch 默认是 All。之后提交的时候用鼠标选中要push 的代码就好了。
6、push 完成之后,现在就把自己代码推送到了远端。接下来就是 向 老大提交pr了。进入自己的 github ,然后切换到自己的那个分支
7、然后点击 New pull request ,进去之后 选择要将哪个分支下的代码 提交给 目标 的哪个分支。如图,右边是自己的仓库master 向 左边是目标仓库master,提交pr。这个是可以选择的。
选完之后就会出现你推送上来的代码。
8、就是Create pull request ,然后编辑你所要提交的信息
9、之后commit 就行。
到此为止,一个干净的pr算是提交完成了。
三、提交了pr之后发现,pr提交错了,又不想被领导看见,怎么办?
1、可以先关掉github 上提交的pr。因为提交的pr都是有记录的。在Pull Request 中。 找到提交错的pr点进去。 如图:
2、拉到最底下,关掉这次提交的pr。如图:
3、然后重新提交。重新提交的时候,可能需要reset 一下版本。因为你commit之后,变动的代码,就不能在当前重新commit了。
四、本地提交commit 之后,如果还没有push ,发现提交的代码有问题,怎么办?
1、比如,commit 之后备注信息是上一个commit 的备注信息,忘改了,怎么办?
可以通过 git commit --amend 这个命令会打开最后一次commit 的 版本,然后对这个版本进行编辑。
还不懂看图片
----- 待续
最新文章
- ECMASCript2015 提案 stage-3的对象展开运算符
- Ext基础一(转载)
- 纯JavaScript实现一些小功能
- apache 2.4 You don&#39;t have permission to access / on this server
- [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)
- 有关 json对象 取出其中数据问题
- mac地址学习笔记
- FPGA在其他领域的应用(四)
- 【Android 应用开发】 Ubuntu 安装 Android Studio (旧版本|仅作参考)
- OpenStack初识
- eclipse安装Activiti
- vue-底部导航栏
- html中通过js获取接口JSON格式数据解析以及跨域问题
- 新建web项目myeclipse基本设置
- liunx之用户管理
- acm 2057
- 【Linux】安装openssh-server依赖openssh-client版本错误的解决办法
- 业务、架构、技术,我们应该关注什么 Java和.Net的优势劣势简单看法 市场经济决定,商业之道即是软件之道,市场的需求决定着软件技术的发展 利益决定着选择应用新技术
- Vue2 原理解析
- myeclipse安装jad反编译插件
热门文章
- hdu 2145(迪杰斯特拉)
- 点击添加按钮,使用ajax动态添加一行和移除一行,并且序号重新排序和数据不重复操作判断
- 过滤器解决hibernate中懒加载问题
- POJ 2411 Mondriaan&#39;s Dream [经典状态压缩dp]
- IIS 7 Access to the path ‘c:\windows\system32\inetsrv\’ is denied
- Java Servlet Filter
- 详解UIView的frame、bounds和center属性
- Openstack nova代码部分凝视一
- java web邮件收发
- 关于使用Axure RP进行原型开发的一些心得体会