git提交到github远程分支

下面我把完整的提交过程和遇到的问题描述一下,并附上相关的解决方案

场景

给一个正在开发的项目添加新功能,该项目代码放在github上面,我被添加为了该项目名为dev分支的合作者,可以向上面push代码,现在我已经开发完了该功能,需要提交到远程分支了,整个过程使用git做了如下操作

安装和clone

首先安装好git然后到目录下面,以windows系统的D:\为例,从代码库clone下来,打开git bash

cd d:
git clone https://github.com/guanpengchn/demo.git

然后将demo.zip压缩包解压出来,这个时候工程就在D:\demo下面

进行开发

然后对下载下来的代码进行开发和更改,修改完成,就到了下面比较关键的步骤了

提交本地仓库

在提交远程仓库之前,要先在本地仓库提交,首先要确定clone下来的工程里有没有.git文件,如果没有的话那么需要自己初始化(理论上应该没有),使用如下代码:

$ git init

如果有的话则可以跳过,然后把修改提交至本地仓库

$ git add .
$ git commit -m '修改主页'

提交远程仓库

提交远程仓库之前需要关联远程仓库

$ git remote add origin https://github.com/guanpengchn/demo.git

其实这句代码的含义就是相当于给origin键加了一个https://github.com/guanpengchn/demo.git,其实就是一个键值对,可以通过如下指令查看

$ git remote -v
origin  https://github.com/guanpengchn/demo.git (fetch)
origin  https://github.com/guanpengchn/demo.git (push)

关联之后就可以提交了,由于我在本地的是主分支,所以也就是master分支,而远程我关联的是dev分支,所以提交的时候要写成如下格式

$ git push origin master:dev

如果仓库里的代码没有被修改过,那么这个时候就成功了

同步仓库再提交

但是如果远程分支被其他人提交修改了,我这里的代码和他人不同步,就会报错,所以这个时候要做同步工作,使用如下指令

$ git pull --rebase origin dev
warning: no common commits
remote: Counting objects: 4365, done.
remote: Compressing objects: 100% (242/242), done.
remote: Total 4365 (delta 221), reused 299 (delta 143), pack-reused 3967
Receiving objects: 100% (4365/4365), 22.13 MiB | 584.00 KiB/s, done.
Resolving deltas: 100% (2571/2571), done.
From https://github.com/guanpengchn/demo
 * branch            dev        -> FETCH_HEAD
 * [new branch]      dev        -> origin/dev
First, rewinding head to replay your work on top of it...
Applying: 修改主页
.git/rebase-apply/patch:2753: trailing whitespace.
                position:relative;
.git/rebase-apply/patch:5715: trailing whitespace.

.git/rebase-apply/patch:5740: trailing whitespace.

.git/rebase-apply/patch:5770: trailing whitespace.
            }
.git/rebase-apply/patch:5772: trailing whitespace.

warning: squelched 79 whitespace errors
warning: 84 lines add whitespace errors.
error: Failed to merge in the changes.
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging server/config.js
CONFLICT (add/add): Merge conflict in server/config.js
Auto-merging client/home/assets/teaching/bg4.jpg
CONFLICT (add/add): Merge conflict in client/common/components/Navbar.js
Patch failed at 0001 修改主页
The copy of the patch that failed is found in: .git/rebase-apply/patch

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".

相当于把远程github上的项目的dev分支的代码拉到了本地和我改好的代码合并,会出现上面的信息,其中有一些信息是我们需要关注的,也就是

Auto-merging server/config.js
CONFLICT (add/add): Merge conflict in server/config.js
Auto-merging client/home/assets/teaching/bg4.jpg
CONFLICT (add/add): Merge conflict in client/common/components/Navbar.js

其中
server/config.js
client/home/assets/teaching/bg4.jpg
client/common/components/Navbar.js
是工程中的文件,上面的翻译过来也就是说,在pull过程中做了自动合并,但是发生了冲突,需要我们手动去解决,然后就把这些文件打开去查看冲突的位置,都已经被git标好了,留下需要的代码即可

解决之后执行

$ git rebase --continue
client/common/components/Navbar.js: needs merge
client/home/assets/teaching/bg4.jpg: needs merge
server/config.js: needs merge
You must edit all merge conflicts and then
mark them as resolved using git add

根据提示,之后执行

git add .

然后在执行

$ git rebase --continue
Applying: 修改主页

这个时候发现pull操作之后的冲突已经都解决完了

然后再执行

$ git push origin master:dev
Counting objects: 42, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (41/41), done.
Writing objects: 100% (42/42), 1.27 MiB | 282.00 KiB/s, done.
Total 42 (delta 13), reused 0 (delta 0)
remote: Resolving deltas: 100% (13/13), completed with 6 local objects.
To https://github.com/guanpengchn/demo.git
   171b4ce..cec6ccf  master -> dev

这个时候就真正的将代码提交到了github的远程分支dev上,打开github切换分支查看提交就可以看到记录了

这里写图片描述
这里写图片描述
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351

推荐阅读更多精彩内容