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 的 版本,然后对这个版本进行编辑。
还不懂看图片

----- 待续
Git 自己的一些工作中的总结的更多相关文章
- git总结一、工作中常用基础命令
首先来了解两个概念: 工作区:比如你的项目目录 暂存区:git和其他版本控制系统的不同之处就是有这个暂存区的概念. .git不是工作区,而是git 版本库,在版本库中存放着很多东西,比如暂存区(sta ...
- git 最新笔记,工作中的必会技能
1.状态查看: git status 可以查看工作区,暂存区的状态 untracked 在暂存区没有该文件 modified 修改过 staged 使用git add 暂存过 2.添加操作: git ...
- 工作中常用Git指令操作
常用Git指令总结 前阵子有几天好不顺,可谓是喝水都呛着,更何况被Git给呛着了,还不轻,哈哈.所以打算总结一下自己在工作使用到Git相关的东西以及和大家探讨使用GIt的心得体会.于是,关于Git的的 ...
- git在工作中的用法总结-使用篇
上一篇介绍了git的环境安装配置,本篇对git在工作中常用的用法进行总结,已满足大部分的日常工作需求,对于其他的一些git命令用法在今后使用到时我也会更新上来,文中如有错误,欢迎大家指出来,谢谢~ 一 ...
- 工作中常用的Git操作--------(一)
今天主要记录一下平常工作当中使用的git操作: 1.git的安装这里省略: 2.git的操作指令: 在项目开发中,经常是拉去经理已经搭建好的一个项目,也就是给我们一个git地址.比如:http://g ...
- git 工作中常用命令(结合vscode学习git 命令)
作为一名前端开发,大家在工作中常常使用什么开发工具呢,我觉得我首选的是vscode,他配合git使用起来非常方便. 工作中常用三个命令: git终端常使用: git add . git commit ...
- git工作中常用命令-工作中踩过的坑
踩坑篇又来啦,这是我在工作中从git小白进化到现在工作中运用自如的过程中,踩过的坑,以及解决办法. 1.基于远程develop分支,建一个本地task分支,并切换到该task分支 git checko ...
- git工作中常用操作总结
这篇文章主要记录下工作中常用的git操作.主要是对之前文章记录的问题做个总结,这个其实在idea中操作更加简单 别名配置 在敲git 命令时,其实可以使用别名,比如 commit可以配置为ci 下面是 ...
- git工作中最常用的用法教程,不走命令行
·1.1 git的概述 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Lin ...
随机推荐
- 受检查异常要求try catch或者throws,但是要记住只要catch异常了,就不会向下继续抛了
所以在框架中,要想异常被统一的异常拦截器处理,就要将受检查异常转换为运行异常,在受检查异常的catch时候,手动throw new runtime exception
- WinForm启动时接收参数
1 默认的Main函数,修改如下: static class Program { /// <summary> /// 应用程序的主入口点. /// </summary> [ST ...
- xml 文件不给提示(以mybatis 的 mapper映射文件为例)
在xxx.xml 映射文件的头部可以看到 如下: (mybatis generate 自动生成) <!DOCTYPE mapper PUBLIC "-//mybatis.org//DT ...
- 如何删除mysql 主键索引
如果一个主键是自增长的,不能直接删除该列的主键索引, 应当先取消自增长,再删除主键特性 alter table 表名 drop primary key; [如果这个主键是自增的,先取消自增长.] ...
- Shell脚本之:for
与其他编程语言类似,Shell支持for循环. for循环一般格式为: for 变量 in 列表 do command1 command2 ... commandN done 列表是一组值(数字.字符 ...
- Cocos2d-x中Vector<T>容器以及实例介绍
Vector<T> 是Cocos2d-x 3.x推出的列表容器,因此它所能容纳的是Ref及子类所创建的对象指针,其中的T是模板,表示能够放入到容器中的类型,在Cocos2d-x 3.x中T ...
- 【转载】ASP.NET之旅--深入浅出解读IIS架构
在学习Asp.net时,发现大多数作者都是站在一个比较高的层次上讲解Asp.Net. 他们耐心. 细致地告诉你如何一步步拖放控件. 设置控件属性.编写 CodeBehind代码,以实现某个特定的功能. ...
- 如何在DOS窗口中显示UTF-8字符
在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMD.exe命令行窗口(所谓的DOS窗口)中不能正确显示文件中的内容.在默认情况下,命令行窗口中使用的代码页是中文或者美国的,即 ...
- IP地址 网段的划分
IP和子网掩码我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP A类IP段 0.0.0.0 到127.255.255.255 B类IP段 128.0.0.0 到191.255. ...
- Java获取系统属性及环境变量
当程序中需要使用与操作系统相关的变量(例如:文件分隔符.换行符)时,Java提供了System类的静态方法getenv()和getProperty()用于返回系统相关的变量与属性,getenv方法返回 ...