• git基本操作

  • git 上次文件到远程仓库(参考:https://blog.csdn.net/beiqiaofeng123/article/details/104859326)

如果第一次上传,配置一下用户名和邮箱(我的用户名是lays03,邮箱是2725281280@qq.com)
git config --global user.name [username]
git config --global user.email [email.address] 
 
如果需要管理本地工程,切换到项目的根目录下,
git init 
 
添加需要上传的文件到暂存区
git add fileName (单个文件)
git add dir (dir文件夹下所有文件,包括子目录)
git add . (添加当前目录下的所有文件到暂存区)
 
提交文件到本地仓库

git commit -m "init commit"
将本地仓库与远程仓库连接
git remote add origin https://github.com/username/仓库名.git
将文件推送到远程仓库
git push -u origin master
  • github基本操作

git init 将这个文件夹变成git可以管理的仓库 本地和远程仓库关联
git add 文件名 将文件添加到暂存区 git push -u origin master push到远程仓库
git commit -m "提交的注释" 将文件提交到仓库 git checkout -b dev 创建并切换分支
git status 查看是否还有文件没有提交 git branch 查看当前的分支
git diff 文件名  查看文件修改了什么内容 git checkout 分支名 切换到相应分支
git log  显示最近的操作/显示分支合并情况 git merge 分支名 将分支合并到主分支上
git reset --hard HEAD^ 回退到文件的上一个版本,如果想回退到上n个版本,在HEAD后加上n个^即可 git branch -d 分支名 删除分支
git reflog 显示每一次操作的详情及版本号    
git reset --hard 版本号 回到对应版本号的版本    
git checkout -- file 丢弃工作区的修改    

下面介绍git多人协作以及冲突解决的问题

  • 简要介绍

首先说一下git多人协作以及冲突解决的问题

模拟的场景:两个人需要对github上的同一个文件进行操作,这里用一台电脑的两个窗口来模拟。操作对象:readme.txt

事先将github仓库里面的内容clone到本地,并且建好分支dev,因为我们一般不在master分支上直接操作。

  • git多人协作 and 冲突解决

  • 步骤一(在第一个窗口中操作):

进入分支dev,在dev下修改readme.txt文件的内容,并将dev分支push到远程仓库

git add readme.txt

git commit -m "注释(根据自己的需要来写)"

git push origin dev

  • 步骤二(在第二个窗口中操作):

进入第二个窗口,模拟第二个人。从github仓库里面获取内容,并将远程仓库dev分支(步骤一中我们操作的那个分支)下的内容pull到本地dev分支上

git clone https://github.com/username/仓库名.git

git checkout -b dev origin/dev

  • 步骤三(在第二个窗口中操作):

修改文件内容,增加“2222”内容。并且将修改后的文件添加到暂存区,并且push到远程仓库

git add readme.txt

git commit -m "2222"

git push origin dev

  • 步骤四(在第一个窗口中操作):

回到第一个窗口,模拟第一个人。修改文件内容,增加“3333”。同样将修改后的文件添加到暂存区,并且push到远程仓库

(命令和步骤三中的一样)

可以看到报错了,原因是已经有别人对远程仓库进行了更新,导致我们第一个人现在操作的对象的版本不是最新的,因为需要重新获取远程仓库里面的内容。

  • 步骤五(在第一个窗口中操作):

使用git pull,重新获取远程仓库里面的内容。可以看到显示冲突

git pull

  • 步骤六(在第一个窗口中操作):

查看readme.txt文件中的内容,查看冲突代码,<<<<<<<HEAD表示的是当前dev上的冲突内容      >>>>>>>表示的是之前push的那个人dev分支上的冲突内容

我们要做的就是删掉这些“<<<<<<<”和“>>>>>>>”即可。删除完之后,重新git add、git commit、git push

  • 步骤七:

去github中查看情况,首先dev分支上的内容确实更新了,但是master上面的内容并没有。

这是因为我们一直是在dev分支上进行操作,push的时候也是push到dev分支,这时只要切换到 master,并merge即可。然后重新将readme.txt  push到远程master分支即可。

git checkout master

git merge dev

到这里,多人协作以及冲突的问题就解决了。

-------------------------------------------------分割线------------------------------------------------

git各种操作:基本操作 and 多人协作 and 冲突解决的更多相关文章

  1. git学习(6)多人协作

    git学习(6)多人协作 当我们从远程仓库克隆的时候,git会自动的把本地的master和远程的master对应起来,并且远程仓库的默认名称是origin 查看远程库的信息 $ git remote ...

  2. git学习记录——分支管理和多人协作

    在公司里难免会出现多个人一起工作,这就需要构建多个分支派发给多个人去干活 这就产生一个需求,分支管理 分支的创建,合并和删除 其他版本控制系统如SVN等都有分支管理,但是用过之后你会发现,这些版本控制 ...

  3. git的基本使用和多人协作合并管理

    1.代码版本控制工具 git 分布式 svn 集中式 2.配置git 配置用户名以及邮箱账号,用于记录用户信息 git config --global user.name 'wudaxun' git ...

  4. git命令行clone指定分支、更新、冲突解决、提交代码步骤

    clone指定分支 : git init 初始化仓库 git clone -b 分支名  git@192.168.3.166:xxxx/xxxx.git   克隆指定分支 更新 :git status ...

  5. Git版本控制:Github的使用之 多人协作及参与项目

    版权声明:本文为博主皮皮http://blog.csdn.net/pipisorry原创文章,未经博主允许不得转载.   目录(?)[-] Git多人协作 从远程库克隆 使用GitHub参与开源项目- ...

  6. Git复习(五)之多人协作、git push失败、git pull失败

    多人协作 多人协作时,大家都会往master和dev分支上推送各自的修改. 现在,模拟一个你的小伙伴,可以在另一台电脑(注意要把SSH Key添加到GitHub)或者同一台电脑的另一个目录下克隆: $ ...

  7. GitHub笔记(三)——分支管理和多人协作

    三.分支管理 0 语句: 查看分支:git branch 创建分支:git branch <name> 切换分支:git checkout <name> 创建+切换分支:git ...

  8. git服务器创建,冲突解决,远程仓库获取指定文件

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

  9. Git - 可视化冲突解决工具P4Merge

    P4Merge P4Merge是Git的一个第三发Diff和Merge工具(可视化冲突解决工具). 下载地址: https://www.perforce.com/downloads/visual-me ...

随机推荐

  1. Android开发三年,面了八家公司终于腾讯上岸,含泪整理面经

    在下2017年毕业,目前从事android开发工作已经3年多了,前段时间刚完成一次跳槽,面试了几家公司,将一些面试经验分享给大家,希望对大家有所帮助. 写在前面 这次跳槽总共是面了8家,(2小,4中, ...

  2. Quartz部署Linux的一个坑

    前言 最近做了一个项目,使用Quartz做定时任务,然后部署到了Linux服务器上,但是竟然很惊奇的跑不起来,已经在阿里云上的Linux上验证无数次了,后来经过不懈努力,终于发现了问题,我自己的Lin ...

  3. curl的基本使用

    基本使用 1. 初始化 初始化非常简单,只需要调用curl_init()函数即可,他会返回一个curl句柄,后边几乎其他关于curl的设置,关闭等函数都需要使用这个句柄 $curl = curl_in ...

  4. 使用vimdiff做hg的版本比较工具

    gvim的文本比较功能很强,命令行用法:gvim -d file1 file2,hg自带的hg diff没有颜色标示,含义也不够清晰,所以需要用vim的diff代替它,实现方法是在全局配置文件中增加: ...

  5. ECDSA—模加减模块

    如果a,b GF(P),则加法运算a+b=r (mod p),其中r满足0<r<p-1,即a+b除以p的余数,该操作成为模p加法.对于模减运算可以视为另类的模加运算,即a+(-b)=k ( ...

  6. epoll水平/边缘触发模式下阻塞/非阻塞EPOLLOUT事件触发条件及次数

    在IO多路复用技术中,epoll默认的事件触发模式为Level_triggered(水平触发)模式,即当被监控的文件描述符上有可读/写事件发生时,epoll_wait()会通知处理程序去读写.如果这次 ...

  7. Mysql生成UUID的SQL语句

    大写的UUID: SELECT UPPER(UUID()); 小写的UUID: SELECT LOWER(UUID()); SELECT UUID(); 去掉横杠的UUID: SELECT REPLA ...

  8. nuxt.js服务端渲染中less的配置和使用

    第一步:npm 安装 less 和 less-loader ,文件根目录下安装,指令如下 npm install less less-loader --save-dev 第二步:直接在组件中使用 &l ...

  9. 免杀生成器之Charlotte解析

    一.工具介绍 charlotte是一款Python编写的自动化免杀工具,用来生成免杀的dll文件,在线查杀是1/26报毒,总的来说免杀效果还可以 下载地址:https://github.com/9em ...

  10. Flink与Strom两个框架的对比分析

    一.Flink与Storm两个框架的对比 二.Flink 的特性 1.高吞吐.低延迟.高性能 2.支持带事件的窗口(window) 操作:time.count.session.data-driven ...