zoukankan      html  css  js  c++  java
  • git服务器创建,冲突解决,远程仓库获取指定文件

    1、git服务器创建

    在公司多人协作开发的情况下,不能简单地使用github,因为github是互联网公开的,这种情况公司的代码的保密性就会丧失了。这种情况下,需要创建git服务器。

    登录服务器,使用git init --bare xx.git创建空的git版本库,这个版本库比较特别,和tree不是一回事,在这个目录下也没法运行git命令。

    之后在工作的机器上,clone此版本库。

    多人clone以及pull、push就可以实现协同开发。

    然后本地的操作方法就都和一般使用git一样了,只不过ip不是对应github而是自己的git服务器。

    2、冲突解决

    多人协同开发的时候,如果两个人改了同一个文件,其中A提交了并push了改动。

    这种前提下,B先pull,发现冲突,此时必须解决冲突才能提交。

    此时有一种可能,B只需获取更新,覆盖自己的改动即可。

    这时可运行命令

    git fetch --all  
    git reset --hard origin/master 
    git pull

    如果B既需要获取更新,还需要把自己的改动提交,那就先保存自己需要提交的文件,然后使用上述方法覆盖本地,之后再将之前保存的需要提交的文件提交即可。

    3、还有一种常见需求,那就是一个项目,并不是所有文件都需要上传,也并不是所有文件本地都需要获取。例如,一个项目IDE自动生产的项目配置文件和编译生成的文件。

    这种情况,需要commit指定文件。

    获取时,不能直接pull,而应先fetch,然后采用 git diff HEAD FETCH_HEAD查看远程仓库与本地的差别,最后使用git checkout origin/master -- /path/file的命令更新指定文件到本地。

    如下图所示,一个用户A上传到远程仓库两个文件1.txt和2.txt,另一个用户B若只需更新1.txt:

    查看目录只获取到1.txt。

  • 相关阅读:
    用Sql添加删除字段,判断字段是否存在的方法
    [转]SQL Server中获得EXEC后面的sql语句或者存储过程的返回值的方法
    sql日记(相关子查询,动态交叉表篇)
    一种迅速从datatable生成excel文件的方法
    系统设计说明书(架构、概要、详细)目录结构
    针对Web系统常用的功能测试方法浅析
    单元测试(UnitTest)入门
    文件操作概览
    C#仿QQ面板的简单实现
    用MD5和SHA1加密字符串
  • 原文地址:https://www.cnblogs.com/rixiang/p/6674289.html
Copyright © 2011-2022 走看看