今天第一次进行了多用户(其实就两人)在自建Git服务器提交代码。

先记录碰到的问题:
首先是本地提交代码时,进行了add,commit后,在push时碰到服务器故障,待设置好服务器后,再push时,却push了0个文件,好像是因为第一次push时,个人认为已经将修改过的文件的标志位改为已push了。后来想了个办法,用版本回退:

git reset --hard HEAD^

HEAD^表示回退一个版本,HEAD^^则是回退两个版本,HEAD~3则是3个版本了。 这种方法是将本地代码也回退到某个版本,另一种方法是代码不变,只回退commit信息,即用soft替代 hard(http://blog.sina.com.cn/s/blog_635675db0101bji9.html)。当时不知道有这种回退方法, 导致代码都回退了。。

然后是发现其他用户新建的分支在我本地看不到,后来发现别人的总结:
"  在实际开发中,我们应该按照几个基本原则进行分支管理:
    首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
    那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
    你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了"
看来其他用户新建的分支就是没必要让其他用户可见的,只需要大家最后将代码合并到某个共同的分支就行

最后是碰到冲突的问题。在本地将branch2(私有分支)的代码合并到branch1(公共分支)没问题,但将branch1提交到服务器时,出现了conflict。

决办法:我们先将branch2最新代码在本地备份一下,然后在本地将branch1代码回退到与branch2合并前,从服务器下载branch1的代
码,合并到本地的branch1,没问题,然后再将备份的代码合并到branch1,再将本地branch1的代码提交到服务器。
效果:我在本地下载branch1的代码,再合并到我的branch1里,没问题,查看代码,应该也更新成功了,和另一个用户的代码一致。

得到一个经验,要将自己写的本地代码提交到公共分支前,有以下几步:
1.新建本地分支,用户自己所进行的所有修改在这个分支里进行(可以push到服务器,当作备份);
2.从公共分支下载最新代码,合并到本地,再合并本地分支的修改,中间要确保无冲突;
3.提交完全合并后的代码。

记第一次多用户在Git提交代码的更多相关文章

  1. git提交代码到github

    前言:转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52117504 git提交代码到github 命令汇总: git init git ...

  2. 使用git提交代码到github,每次都要输入用户名和密码的解决方法

    自从使用git提交代码到github后,发现自己使用git的功力增长了不少,但也遇到不少问题.比如,使用git提交代码到github的时候,经常要求输入用户名和密码,类似这种: 网上有这么一种解决方法 ...

  3. Git提交代码失败: empty ident name (for <>) not allowed

    使用git提交代码,报错如下: 下午2:56 Commit failed with error 0 files committed, 1 file failed to commit: 升级 empty ...

  4. 在使用Git提交代码的时候犯了个低级错误

    今天在使用git提交代码的时候,犯了个很低级的错误,按照一切流程当我add并commit提交代码,最后使用push到远程仓库, 接下来奇怪的事情发生了,push之后,查看远程仓库代码并没有发现提交记录 ...

  5. Git提交代码报错Git push error:src refspec XXX matches more than one解决方案

    Git提交代码push时,报错这个 error: src refspec master matches more than one. error: failed to push some refs t ...

  6. git提交代码到码云

    日常代码一般提交到github比较多,但我还是钟爱马爸爸,没错就是码云. 码云是中文版的代码托管的网站,不存在打开网速问题,使用也蛮方便的,日常自己保存托管代码已经足够,平时使用git提交代码到码云是 ...

  7. git提交代码报错 trailing whitespace的解决方法

    1. git提交代码报错 trailing whitespace 禁止执行pre-commit脚本 进入到项目目录中 chmod a-x .git/hooks/pre-commit 2.git提交代码 ...

  8. Git提交代码到主分区

    git 提交代码,本地新建一个my分支,不从本地master分支直接上传,而是先从本地my分支上提交至本地master分支,然后本地master提交至远程master分支 上.前提是远程只有一个mas ...

  9. git提交代码出现错误fatal: Unable to create '项目路径/.git/index.lock': File exists.

    git提交代码出现错误fatal: Unable to create '项目路径/.git/index.lock': File exists. 具体出错代码如下: 具体原因不详,在stackoverf ...

随机推荐

  1. Bcompare工具永久使用方法

    bcompare的简介 ​ 我们在工作中会经常用到bcompare工具:合入驱动,对比原始文件等. bcompare,即Beyond Compare 是一个综合的比对工具. 可比对的对象包括纯文字档. ...

  2. 【转载】ubuntu下/usr/bin和/usr/local/bin的区别

    这篇文章已经无法考证是谁原创的了 首先注意usr 指 Unix System Resource,而不是User 然后通常: /usr/bin下面的都是系统预装的可执行程序,会随着系统升级而改变. /u ...

  3. python的shelve模块

    shelve shelve是一额简单的数据存储方案,他只有一个函数就是open(),这个函数接收一个参数就是文件名,并且文件名必须是.bat类型的.然后返回一个shelf对象,你可以用他来存储东西,就 ...

  4. vue源码分析—模板解析

    福建省啦剑飞傻了剑飞撒到了看风景啊撒:

  5. 字符串相关的hash值(一)

  6. 【转】AJAX请求和普通HTTP请求区别

    两者本质区别: AJAX通xmlHttpRequest象请求服务器服务器接受请求返数据实现刷新交互 普通http请求通httpRequest象请求服务器接受请求返数据需要页面刷新 AJAX请求 普通请 ...

  7. 【html5】解决HTML5新标签不兼容的问题

    html5标签: 1.语义化好 -> SEO a). 程序交流方便 b). 搜索引擎友好 baidu -> 不认识 google 2.本身不兼容,想兼容低版本,请使用如下方法: 方式一:使 ...

  8. 008_使用pyenv进行py开发环境管理

    一. 安装Python 绝大多数Python入门书籍,都会介绍如何安装Python,然而,本书要介绍一种全新的安装方式.使用pyenv来安装并管理我们的环境. pyenv简介 由于Python的依赖是 ...

  9. arduino json 解析

    #include <ArduinoJson.h> void setup() { Serial.begin(9600); DynamicJsonDocument jsonBuffer(200 ...

  10. scipy 安装错误及解决

    pip 安装 scipy 时,因为是编译安装,所以如果缺少一些编译库,会报很多错误,以下总结可能缺失的安装包: sudo apt-get install gfortran sudo apt-get i ...