git学习之旅(二)——多人协助

工作区workspase 暂存区stage 版本库master的区别

工作区就是目前文件系统下的文件,所以直接打开文件夹就能看到

暂存区是通过git add后版本库暂时保存的地方,紧接着要使用git commit提交到版本库上的某个分支上

提交到版本库后相当于有了备份,以后能恢复到工作区


用户2提交

  • cd ~/user2
  • git clone [email protected]:repo/sample.git
  • cd sample
  • echo "Hello Git!" > user2.txt
  • git add user2.txt
  • git commit -m "user2 commit"
  • git push origin master
  • git log

「情况1」用户1提交

  • cd ~/user1/sample
  • echo "Hello Git!" > user1.txt
  • git pull
  • git add .
  • git commit -m "user1 commit"
  • git log --graph

用户1也做一次提交,注意执行顺序,先git pull再提交

git pull从服务器更新并合并(merge)到分支

「情况2」用户1提交

如果先提交再同步服务器,或者刚好在你提交时有人比你先提交,之后的日志(log)会不一样

回退提交

  • cd ~/user1/sample
  • git reset --hard HEAD~2 (git reset --hard HEAD^^)(git reset --hard ad64c8c)

先回退user1的全部操作,使用git reset --hard HEAD~2,表示回退2次的提交,也可以用HEAD^^,可以使用哈希值(SHA1),哈希值可以不全写,只要能区分不同提交就可以

  • echo "Hello Git!" > user1.txt
  • git add .
  • git commit -m "user1 commit"
  • git push origin master

如果不先同步服务的最新提交会被拒绝提交到服务器

  • git pull

这个是修改提交说明的编辑界面,使用默认提交,ctrl+x退出并完成

  • git push origin master
  • git log --graph

可以看到比正常的提交多了一个合并(merge)的提交,用户1与用户2在第一个提交后各自持有一个版本分别进行编辑,各自进行的一次提交,最后都提交到服务器时会做一次合并。

「拓展」ssh设置

如果每次都服务器操作都需要密码,如果取消密码或者不想告诉其他用户服务器的密码,可以使用公钥的方式管理。

  • cd ~/.ssh
  • ssh-keygen
  • ssh-copy-id -i id_rsa.pub [email protected]

生成公钥,id_rsa是私钥,id_rsa.pub是公钥,如果已经存在可以用原来的。在服务器上的~/.ssh/authorzed_keys文件里就会追加id_rsa.pub的内容,也可以手动自己复制到里面。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-09-29 04:44:17

git学习之旅(二)——多人协助的相关文章

Git学习笔记(二)

本次学习的是 版本回退 基本命令: 查看提交历史      git log 版本回退            git reset 查看每一次的命令 git reflog 具体步骤: 添加一句话到readme.txt中,并提交到Git库中. . readme.txt在Git中目前有三个版本: 按提交时间先后顺序排列如下: 第一个:wrote a readme.txt 第二个:add distrubuted 第三个:add difficulties 如果版本过多的话,根本记不住,只能查看使用命令git

滴滴Booster移动APP质量优化框架 学习之旅 二

推荐阅读: 滴滴Booster移动App质量优化框架-学习之旅 一 Android 模块Api化演练 不一样视角的Glide剖析(一) 续写滴滴Booster移动APP质量优化框架学习之旅,上篇文章分析内置的transform:booster-transform-shrink booster-transform-shared-preferences,今天分析booster-task-compression以及定制task对资源索引文件resource.asrc进行优化(重复资源优化.无用资源优化

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

在公司里难免会出现多个人一起工作,这就需要构建多个分支派发给多个人去干活 这就产生一个需求,分支管理 分支的创建,合并和删除 其他版本控制系统如SVN等都有分支管理,但是用过之后你会发现,这些版本控制系统创建和切换分支比蜗牛还慢,简直让人无法忍受,结果分支功能成了摆设,大家都不去用. 但Git的分支是与众不同的,无论创建.切换和删除分支,Git在1秒钟之内就能完成!无论你的版本库是1个文件还是1万个文件 $ git checkout -b dev Switched to a new branch

git学习之旅(六)——github远程服务器

github是一个免费的git服务器,上面可以找到很多开源项目 官网:www.github.com 注册帐号完成后,进入主页 点击左上角的图标也可以进入主页,看到4个帮助文档,点击第一个文档Set up Git 主要是使用ssh密钥来管理编辑权限,在第二篇的最后的扩展部分已经介绍了ssh的使用,按照以上文档可以将公钥粘贴到新建的key,那么本地就有权限提交到github上了. 在主页上2个地方都可以找到新建仓库的按钮,点击后进入以下页面 仓库的名字.会自动加上.git后缀 描述信息 公开或私人.

artDialog学习之旅(二)之扩展方法详解

名称 描述 核心方法 art.dialog.top 获取artDialog可用最高层window对象.这与直接使用window.top不同,它能排除artDialog对象不存在已经或者顶层页面为框架集的情况这是iframe应用工具集中的核心方法,你可以用它来操作父页面对象(包括上面的对话框) art.dialog.data(name, value) 跨框架数据共享写入接口.框架与框架之间以及与主页面之间进行数据交换是非常头疼的事情,常规情况下你必须知道框架的名称才能进行数据交换,如果是在复杂的多

[原创] zabbix学习之旅二:yum安装

对于允许连接公网的环境下,显然通过yum安装是最为简单方便的,也是官网推荐的安装方式.通过这种方式安装,会将php.apache.zabbix本身都一并安装,解决了烦人的依赖包问题. 本文将介绍如何进行yum安装. 安装Mysql zabbix支持安装在多种数据库上,本方案中数据库为mysql.安装及库表建立如下: 安装mysql5.6.28,安装方式为rpm安装,安装前若本机已有老旧mysql,请卸载. rpm –ivh MySQL-server-5.6.28-1.el6.x86_64.rpm

我的AngularJS 学习之旅(二)

记得某位大神说过,"时间就像海绵里的水,挤挤总是有的.".大多时候,与其说我是很忙而没时间去做自己想做的事, 倒不如说是懒得去做罢了. 废话不多说,接前一篇继续吧 3.3 指令(Directives) Angular  最强大的功能之一就是,你可以把模板编写成HTML的形式. [备注:Angular引入了一款强大的DOM转换引擎,可用它来扩展HTML的语法] 常用的内置指令; {{ greeting }}    单向数据绑定 ng-model          双向绑定 3.4 过滤器

Git 学习笔记(二)

看完了 Git 的介绍后,也是时候动手尝试一下了,不过我们需要先安装好它.它有许多种安装方式,主要分两种,一种是通过编译源代码来安装:另一种是使用为特定平台预编译好的安装包,这里就不做赘述了. 配置 一般运行前,我们都需要配置下自己的 Git 工作环境.配置工作只需一次,以后升级时还会沿用现在的配置.当然,如果需要,你随时可以用相同的命令修改已有的配置.Git 提供了一个叫做 git config 命令专门用来配置或读取相应的工作环境变量. 用户信息配置,分别用来配置用户名和邮箱: $ git

git学习之旅(四)——回退版本

本地合并提交或修改提交说明 cd ~/user mkdir sample2 cd sample2 git init echo "1" > user.txt git add . git commit -m "NO.1 commit" echo "2" >> user.txt git add . git commit -m "NO.2 commit" echo "3" >> use