• 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. rein 多平台支持的超便携端口转发与内网穿透工具

    介绍 本程序主要用于进行反向代理IP地址和端口,功能类似于 nginx 的 stream 模式和rinetd 的功能:在(1.0.5)版本开始,rein支持内网穿透,这一功能类似于frp 和ngrok ...

  2. JavaGUI画笔工具的使用

    JavaGUI画笔工具的使用 package GUI; import java.awt.*; public class TestPaint { public static void main(Stri ...

  3. [TensorFlow2.0]-学习率 激活函数 损失函数

    本人人工智能初学者,现在在学习TensorFlow2.0,对一些学习内容做一下笔记.笔记中,有些内容理解可能较为肤浅.有偏差等,各位在阅读时如有发现问题,请评论或者邮箱(右侧边栏有邮箱地址)提醒. 若 ...

  4. MySQL慢查询及开启慢查询

    一.简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能. 二.参数说明 slow_query_log 慢查询开启状态 slow_ ...

  5. Golang语言系列-16-context上下文

    context上下文 控制子goroutine退出 全局变量方式 package main import ( "fmt" "sync" "time&q ...

  6. Python实现发送邮件(实现单发/群发邮件验证码)

    Python smtplib 教程展示了如何使用 smtplib 模块在 Python 中发送电子邮件. 要发送电子邮件,我们使用 Python 开发服务器,Mailtrap 在线服务和共享的网络托管 ...

  7. SpringBoot监听redis过期key

    开启过期监听 vim /etc/redis.conf 取消notify-keyspace-events Elg的注释 pom.xml 添加: <dependency> <groupI ...

  8. C#多线程---线程池的工作者线程

    一.线程池简介 创建和销毁线程是一个要耗费大量时间的过程,太多的线程也会浪费内存资源,所以通过Thread类来创建过多的线程反而有损于性能,为了改善这样的问题 ,.net中就引入了线程池. 线程池形象 ...

  9. 有限次数的Undo&Redo的C#实现

    为了实现Undo和Redo,必须要在程序中保存起程序的运行状态,从而能够在Undo时跳转到前一个状态和在Redo时跳转到下一个状态.为了实现状态的维护,我采用了两个栈来分别保存Undo操作的状态和Re ...

  10. SpringBoot五步配置Mybatis

    第一步:Maven里面添加mybatis的引用jar包: <!--mybatis--> <dependency> <groupId>org.mybatis.spri ...