Git版本管理系统使用

今天有很多同鞋跟我抱怨,为什么现在的招聘信息里边都有一条:有github帐号者优先~~我也是醉了.
我在想,HR背后的团队一定有过没有版本控制造成的惨痛经历,因此才要特地强调招人就招git-man. 所幸自己很早就开始了git/svn之路,走得倒也从容.
在此总结一下github的使用过程,大家一起嗨起来吧.

前言

还不知道git所谓何物的同鞋,快去找度娘Get新技能吧~~
话说当前流行的版本控制工具一个是svn. 一个是git.
而开源托管的服务器代表分别是:
1. http://code.taobao.org 用的是svn.
2. https://github.com 用的是git.

那么: svn与git的区别到底是什么呢?
本质上没有区别,都是用来进行代码版本管理的,能够进行代码版本迭代,提交,回退,分支,合并等等操作.
在以前,当多个人同时开发一个项目的时候,要么需要一个很牛的架构师对系统进行模块化,每个人仅负责其中一个模块的编程工作,很少会与其他人的模块代码产生冲突,最终很容易就可以手工合成一份高质量的软件版本. 现代社会,软件一款比一款复杂,使得手工合成版本变得很不现实.因此出来了版本管理工具.它能进行人所需要的所有操作,帮人合并代码,甚至当合并后代码有问题还能进行版本回退,退到上一次编辑的正常版本.各种高级功能已非人力所及.因此掌握一款版本管理工具对我们码农来说是至关重要的.
再回到区别上来,
svn属于集中式版本管理系统,需要有一台统一的服务器来集中管理项目代码.code.taobao就是干这件事件. 没有这台服务器svn版本控制无从说起.
再说git, git属于分布式版本管理. 形象点看,就是每个人的电脑都是一台版本控制服务器,各自的代码可以在自己电脑上进行版本管理.不需要时刻依赖网络.只有当多人协同开发时,才需要推送到一台公共的服务器,这其中的代表就是github.com服务器. 当然github免费版本要求你的项目源码公开,所有人都可以下载查看.这对于商业项目来说是无法忍受的. 当然github提供了商业授权供使用,你需要支付每月最少$7的费用来保证你的项目不被公开.

废话不多说,今天详细讲解git的使用过程以及用到的各种指令.

环境配置:

  • 下载Git工具 >http://git-scm.com/download/
  • Windows版本安装包大概有30M.有点小大.一路Next.中间有需要选择的都以默认选项就OK.不需要特别的设置.当然能看懂EN的可以自由设置.
  • 安装好以后,鼠标的右键菜单中就多了两个选项:Git GUI here 和Git Bash here.这两个菜单很重要,一定记住.
  • 至此,基本环境准备完成.

Git GUI 使用:

对于命令行操作不是很熟的话,可以使用git gui. 特点是方便,简单.适合中国人使用.
在你希望使用版本控制的目录下右键菜单-> Git GUI here 即可打开图形操作界面.界面上只有三个菜单:

  • Create New Repository(创建一个新的版本仓库)
    • 点击后选择仓库目录,确认创建后,此目录中会多出一个隐藏文件夹: .git
    • 此后这个目录中的所有内容都受版本控制.此目录文件所做的修改会被记录下来,以便将来的某个时候能回退到某一历史状态.
  • CloneExisting Repository
    • 从某个现成的版本仓库中拷贝一份代码到本地电脑.拷贝后,将有两份一模一样的代码,对其中一份的修改不会影响另一个仓库的内容.
  • Open Existing Repository
    • 直接打开某一现成的版本仓库.就像打开文件一样.
    • 使用此菜单的前提是,打开的目录中包含.git这样的文件夹.也就是以前有创建过版本控制的地方.

以上菜单操作成功后,会进入图形化的代码管理界面,上边将会列出所有待提交的文件.当然你也可以进行其他操作.

接下来重点讲解GitBash命令行方式操作:

以前总觉得玩linux的同鞋对着黑白屏幕啪啪敲指令很牛逼的样子,一心想学习一下.于是各种宅. 现在终于体会到这种感觉了—各种苦逼~~
好了不啰嗦,直接上指令.
在想要创建版本控制的目录下,右键选择Git Bash here. 即可打开装逼的黑白窗口.

  • git init – 用来创建一个版本仓库.创建成功此目录将受控制.
andrewlu@ANDREW MINGW64 /f/git-test
$ git init
Initialized empty Git repository in F:/git-test/.git/
  • git add – 仓库创建成功后,就可以向仓库中添加待控制文件了.
    现在我们在F://git-test目录中创建一个文件a.txt >> touch a.txt 或者直接在目录中右键菜单创建文件..
andrewlu@ANDREW MINGW64 /f/git-test (master) 
$ touch a.txt     //创建一个新文件a.txt. 属于linux指令范围. git bash 模拟linux环境运行,因此指令可用.

现在我们的仓库中有了一个文件需要提交到版本仓库中,该怎么做呢?

$ git add a.txt b.txt
Warning: LF will be replaced by CRLF in b.txt.
The file will have its original line endings in your working directory.

git add 指令可以将文件添加到受控列表中去.否则新创建的文件仍然不被版本控制.
git add 指令可以批量添加文件或者目录. 用空格分开即可,如果文件路径中有空格,则需要用”“将文件名包括起来. 当添加的文件为目录时,git会自动遍历目录下的子文件,并一起添加.所以非常方便.

  • git commit -m ” change log” –向仓库中提交修改. -m 参数用来添加修改日志.
andrewlu@ANDREW MINGW64 /f/git-test (master)
$ git commit     //没有-m参数时无法提交修改.
Aborting commit due to empty commit message.

andrewlu@ANDREW MINGW64 /f/git-test (master)
$ git commit -m "添加了a.txt文件"
[master (root-commit) 709f659] 添加了a.txt文件
warning: LF will be replaced by CRLF in b.txt.
The file will have its original line endings in your working directory.
 2 files changed, 3 insertions(+)
 create mode 100644 a.txt
 create mode 100644 b.txt

andrewlu@ANDREW MINGW64 /f/git-test (master)
$

此后每当有文件发生变更时,就需要重复 git add 和git commit才能进行版本控制.

  • git checkout — 撤销某文件的修改.
    当编辑到一半发现代码不能用了,有重大错误,想要重头再写一次怎么办. 代码回退,就是让这个文件回到最后一次git commit或git add时的状态.
andrewlu@ANDREW MINGW64 /f/git-test (master)
$ git checkout -- a.txt     //中间的 -- 一定不要忘了.非常重要.

andrewlu@ANDREW MINGW64 /f/git-test (master)
$  

此命令也可用在你不小心误删了某个文件的时候.你删除的只是工作区的文件,版本库里边文件还好好的呢.因此可以使用此命令将文件重新检出来.

至此,基本的git 指令及用法读完了. 用这几条指令就可以进行代码管理了.非常方便.
但是如果有多个人协同工作的时候怎么办呢,你们必须有一台git的服务器,来互相共享各自的代码.github就是一个可以免费使用的git服务器.可以放心使用.下边我们来讲解github的使用.

  • 登录github.com 创建远程仓库.
    登录后我们需要关注的只有两点:
    1) organization (组织机构/公司)
    - 如果是刚注册的用户,. 按钮在左上方一个下拉菜单里.选择Create an organization
    - 如果是老用户,需要选择版本仓库的organization.同样是在左上方下拉菜单中选择.
    2)Repository
    - 选择好组织机构后就可以在github上创建一个远程的仓库了. 这个仓库将有唯一的URL以供所有人访问和共享.
    - 点击 New repository绿色按钮就可以创建仓库了.需要填写仓库的名字.

这个很好理解,如果你在两家不同的公司呆过,那么创建的项目就不应该归在一个目录下,会造成各种混乱.因此有了分组织一说.

  • 本地仓库与远程仓库进行关联绑定
    这一步虽然命令没两个,但是最难的地方在于需要进行密钥验证.后续再讲.
    我创建远程仓库时选择的org是 andrewlu1, 仓库名是 GitTest ;因此得到的仓库URL就是: https://github.com/andrewlu1/GitTest.git
    这个路径还可以是:git@github.com:andrewlu1/GitTest.git
    都可以用,一种是https协议格式,一种是ssh协议.

  • git remote add —- 与远程仓库进行绑定指令.

$ git remote add origin git@github.com:andrewlu1/GitTest.git

如果没有问题,这一步将绑定到远程服务器.我们后续代码所做的修改,都可以push到这个远程服务器供其他人下载合并.

$ git push -u origin master   //第一次push时,要带上 -u. 后续push就可以省掉.

这一步执行成功后,我们打开自己的github主页就会发现版本仓库中的内容与本地的内容完全一致了.

其他牛人博客参考:

廖雪峰Git教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值