使用 Git 命令去管理项目的版本控制(二)
参考 上一篇 完成本篇博客,本篇为作者原创,仅供学习参考。
本篇博文在上一篇的基础上这里记录了我的一个小模拟练习。本篇作为自己的学习笔记,也意在方便其他人的学习使用,达到分享目的。下面主要是操作截图 参考 cankao 参考
首先这里我要重点说明一下:git 与 svn 的区别,git 是分布式的管理服务器,一个很好的应用就是 gitHub 网站。是 Linux 内核开源的作者使用27天时间编写成功的,是不是非常牛逼(参考 )。svn 是一个集中式的服务器。集中式的服务器对网络的要求比较大,如果没有网络,他就不能很好地为我们服务,这也是我为什么要分享一下git的使用的原因之一。但是较大的公司一般还是出于保密不会使用第三方的托管工具,他们一般都会有自己的内网和代码管理工具。git能够在没有网络的情况下完成对版本的回复,提交修改源码,仅仅在同步服务器的时候需要网络(将本地的服务器仓库副本上传到公司的服务器原本中)。
首先建立以下文件夹,下面默认已经打开显示隐藏文件(这个请参照上一篇中的命令)注意,下面出现的中文文件夹,没有试验成功,需要修改为英文的名字,这样就能够进行了提交版本等等实验。由于截屏要花费时间,所以下面的博文,从不能实现的地方我进行了修改了英文,前面的重点是一些操作步骤。

将初始化 服务器数据仓库 为远程仓库(就是我们Project要托管的地方),打开终端,输入命令如下:

经理需要在 项目经理 文件夹中 克隆服务器仓库副本到本地 ,然后再创建工程框架,创建一份滤过性说明文件 .gitignore ,最后将创建好工程框架的数据仓库副本推送到服务器仓库(push),截图如下:

在终端中找到路径为 项目经理/数据仓库 的路径,然后为该服务器副本仓库配置用户名,邮箱,然后添加一个工程到副本内部,注意:滤过文件(.gitignore)与(.git)还有 工程文件 三个在同一级目录(服务器副本文件夹)中。下面省去了用户名,邮箱配置,截图如下:

下面是将上面做好的工作,推送到公司服务器仓库中:

程序员张三,去从公司服务器仓库 得到整个项目:


下面假设李四 和 王五 都做了上面的步骤,这样 三四五都开始编码了,第一天开工了:
张三工作,张三打开从服务器上克隆下来的工程文件,开始了自己的编码,编码一天了,开始提交自己的工作到公司服务器。
commit 的时候 顺便再勾选一下左下角的 push to remote

经理晚上要看看张三这个人,这一天的任务量是否完成
点击 Xcode菜单栏上的source control -> pull 进行更新
在pull的时候遇到错误如下:

可以这样的解决:
点击 Xcode菜单栏上的source control -> Discard All Changes 进行将以前的更新撤销,然后再从服务器拉取更新就OK了


做到这里居然张三提交到服务器的内容,对张三、经理、其他人都不能pull下来。这里我仔细检查了半天,都没有问题啊,原因是我采用了中文的名字,在生成路径的时候,非常的容易出错,导致系统不能认出来了,所以以后还是要写成字母为好。下面我又新建的文件,开始继续上面的操作。
注意,user.anme user.email 是必须写的,不然在提交代码的时候会给出警告,不能提交,这里如果忘了,可以在终端输入设置用户名和用户邮箱的命令。
这一次我快速的创建了字母的格式的文件夹,就好了,解决了上面的问题。那么下面我就要基于我字母格式文件夹来模拟操作了。
好了下面的模拟很简单,文件名字也很简单(经理-jl,张三-zs ,王五-ww ,公司远程服务器-sever)

下面模拟王五开始干活,在工程中操作:

接下来,王五提交任务到服务器

由于缺少用户名与邮箱,上传到服务器的时候,如下:

解决办法:

现在就可以了,提交之后。jl打开然后pull 就可以看到ww(王五)做了什么工作了。
经理要的操作:打开工程-Source Control ->pull....

次日,张三来的很早,第一件事就是从服务器上down一份最新的工程代码
下载之前:

下载之后:(pull)

致此,已经模拟了项目经理上传框架,员工下载框架,员工上传自己的任务、经理下载查看任务完成情况。
以后我还陆续更新,分支的使用,感觉写博客是一件费时的事情,但是呢也有收获,自己能够再一次的学习理解,分享,还能在遗忘的时候快速回顾。
假设这时候公司来了一个新的员工叫 wm(王麻子)









创建分支: $ git branch mybranch
切换分支: $ git checkout mybranch
创建并切换分支: $ git checkout -b mybranch 更新master主线上的东西到该分支上:$git rebase master 切换到master分支:$git checkout master 更新mybranch分支上的东西到master上:$git rebase mybranch 提交:git commit -a 对最近一次commit的进行修改:git commit -a –amend commit之后,如果想撤销最近一次提交(即退回到上一次版本)并本地保留代码:git reset HEAD^
合并分支:(merge from) $ git checkout master
$ git merge mybranch (merge from mybranch)
删除分支: $ git branch -d mybranch
强制删除分支: $ git branch -D mybranch
列出所有分支: $ git branch
查看各个分支最后一次提交: $ git branch -v 查看哪些分支合并入当前分支: $ git branch –merged 查看哪些分支未合并入当前分支: $ git branch –no-merged 更新远程库到本地: $ git fetch origin
推送分支: $ git push origin mybranch
取远程分支合并到本地: $ git merge origin/mybranch
取远程分支并分化一个新分支: $ git checkout -b mybranch origin/mybranch
删除远程分支: $ git push origin :mybranch rebase: $ git checkout mybranch
$ git rebase master (rebase from master) 举例: $ git checkout server
$ git rebase –onto master server client
$ git checkout master
$ git merge client (fostforward)
$ git rebase master server (checkout sever)
$ git merge server
$ git branch -d client
$ git branch -d server
常见命令
(Over 版本控制仅仅是很浅的学习到这里,以后还要继续学习git的知识,这篇博文话费时间最久,决定以后要减少写博客的时间)由于个人使用习惯问题,实验做完了,可以将本来的隐藏文件设置为隐藏状态了,请看 上一篇 中的命令行。(本人用的是 mac 10.11 目前最新苹果系统)
PS:在公司里请不要随意的升级系统,如果你升级了系统,与你的已经做了一半的工程里面有东西不匹配了,工程报红,就是你的责任了,你会挨批,会不好过的。所以注意不要擅自升级公司里自己的系统。
使用 Git 命令去管理项目的版本控制(二)的更多相关文章
- 使用 Git 命令去管理项目的版本控制(一)
		
参考资料:参考 参考 声明本文是作者原创,是自己的学习笔记,仅供学习参考. 在 10.11.2Mac系统中,要显示隐藏的文件夹使用命令行: defaults write com.apple.find ...
 - 用Git管理项目进行版本控制
		
一.安装 1.1windows 要在Windows系统中安装Git,请访问http://msysgit.github.io/,并单击Download.安装. 1.2 在 Linux 系统中安装 Git ...
 - 使用git和github管理项目代码
		
以前不知道使用代码管理工具,最后写的一些东西都没有了,由于硬盘坏了或者不小心格式化了之类的,后来使用了Git 和Github来托管自己的代码和读书笔记方便了不少,到哪里只要有网就可以把自己的东西拷贝下 ...
 - Git命令行管理代码、安装及使用
		
出处:https://www.cnblogs.com/ximiaomiao/p/7140456.html Git安装和使用 目的:通过Git管理github托管项目代码 一.下载安装Git 1 ...
 - mac上使用git命令上传项目工程源码至Github/gitee
		
原文连接:(http://www.studyshare.cn/blog/details/1164/0 ) 一.安装git工具 1.官网下载地址:点击下载 安装步骤略,mac安装工具双击拖动即可. 2 ...
 - 初次在cmd使用git命令上传项目至github方法(笔记)
		
在一切开始之前,先推荐一个git简易工具书--Git_Cheat_Sheet,非常适合新手.自行搜索即可,也有热心者提供了中文版. 一.下载 Git 从Git官网下载Git安装包 https://gi ...
 - 利用GIt命令上传项目到GitHub指定仓库
		
1.建立GIt可管理的仓库 cd到本地项目根目录下,执行 git init 命令: git init 2.将项目的所有文件添加到仓库中(注意add后面有一个“ . ”) git add . 3.将上一 ...
 - ***Linux下使用git命令及github项目
		
在linux下搭建git环境1.创建Github账号,https://github.com2.Linux创建SSH密钥: ssh-keygen ##一直默认就可以了 3.将公钥加入到Github账户 ...
 - git命令上传项目到码云总结
		
码云上传项目git命令总结: git clone https://git.oschina.net/xh-lxx/xh-lxx.oschina.io.git 进入到克隆下来的文件夹,然后操作git命令 ...
 
随机推荐
- gulp是用来干什么的?(概念)
			
当我们在使用gulp的时候,gulp到底用来干什么呢? 编译 sass 合并优化压缩 css 校验压缩 js 优化图片 添加文件指纹(md5) 组件化头部底部(include html) 实时自动刷新 ...
 - Oracle oledb 打包并集成到程序安装包(VC ADO訪问Oracle)
			
近期有一个项目和oracle交互,我用的是ADO的方式进行试问操作. 首先把数据库连接的东东记录一下,老了记性不好啊! 操作例如以下: //连接串这么写的话就能够不用配置 tnsnames.ora配置 ...
 - VM不能ping通www.baidu.com的问题【NAT】 更新了【桥接模式】
			
NAT模式 1.为NAT设置子网及掩码等信息 点击VMWare菜单栏“编辑” —> 虚拟网络编辑器 [下图第一张图]—> 选中VMnet8(当然这个看自己的设备后缀是多少了,只要外部连接方 ...
 - vim 参数文件配置
			
下面是我配置的遇到问题不能修改配置文件时的解决方案 1 /usr/share/vim/vimrc 2 这个是系统型的vimrc配置文件,为了保证vim的正常使用,一般并不会修改这个文件, 而是应该在你 ...
 - Java解析Property文件
			
在Java项目中一些配置參数保存在Property文件里,这样能保证不改动原代码直接改动Property文件. PropertyParser.java package com.discover.par ...
 - 带缓冲的IO( 标准IO库 )
			
前言 在之前,学习了 read write 这样的不带缓冲IO函数.而本文将讲解标准IO库中,带缓冲的IO函数. 为什么要有带缓冲IO函数 标准库提供的带缓冲IO函数是为了减少 read 和 writ ...
 - 继续聊WPF——获取ComboBox中绑定的值
			
千万不要认为WPF中的数据绑定会很复杂,尽管它的确比Winform程序灵活多了,但其本质是不变的,特别是ComboBox控件,我们知道在Winform中对该控件的有两个专为数据绑定而设定的属性——Di ...
 - JSP之Model1
			
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...
 - Colly provides a clean interface to write any kind of crawler/scraper/spider
			
Scraping Framework for Golang http://go-colly.org/ https://github.com/gocolly/colly package main imp ...
 - DuiLib笔记之Control常用属性
			
name 指定控件名称,同一窗口内必须唯一,类型:STRING float 用于指定控件是否使用绝对定位,或设置FloatPercent,类型:BOOL,默认值为false,格式:float=&quo ...