开心123 发表于 2018-1-15 11:18:08

版本控制

  大家好,我又回来了,上个礼拜因为熬夜看球感冒了,所以没有写新的文章出来。
  这周给大家介绍下git的使用
  我们为什么需要一个版本控制的软件呢?
  我相信大家很多人在进行版本控制时往往都是使用复制的方式,不过这样做的后果是
  1.需要程序员自己记住每一个复制所对应的版本是多少,
  2.项目回退时很容易混淆当前的工作路径,并且对以前的版本进行修改,导致以前的版本被错误的修改
  3.多人合作时,会出现大家操作的项目的版本不一致的现象
  所以我们需要一个版本控制软件来帮助我们进行版本控制,减少我们记忆上的负担和使版本控制变得简单易操作
  一、什么是git
  Git是一个开源的分布式版本控制系统,能够有效的对项目进行版本的控制。
  Git既可以用于个人的,本地的版本控制,又可以在多人合作时,将版本备份到服务器,保证多人间版本的一致性
  二、git的安装
  下载地址 https://code.google.com/p/msysgit/downloads/list
  第一步 在官方网站上下载
https://images0.cnblogs.com/blog/412433/201404/121407027474004.png
  第二步安装,一路next,直到出现如下界面
https://images0.cnblogs.com/blog/412433/201404/121407038408804.png
  第一个意思是只能通过git bash输入命令,
  第二个指可以通过cmd启动git,输入git相关命令必须等它启动后
  第三个指将可以在cmd中直接输入git的相关命令,注意这个可能会覆盖cmd中原有的命令
  建议大家选第一个就可以了
https://images0.cnblogs.com/blog/412433/201404/121407048873916.png
  是为了处理windows和linux/unix中换行符的不同(windows中换行符是CRLF,linux/unix中是LF)
  第一个选项:会将所有的LF转换为CRLF,如何你是在windows下使用,建议勾选
  第二个选项:会将所有的CRLF转换为LF,如何你是在linux/unix下使用,建议勾选;
  第三个选项:不进行换行符的转换
  三、git的使用
  1. 中文录入问题
  默认安装的 msysGit 的 shell 环境中无法输入中文。为了能在 shell 界面中输入中文,需要修改配置文件 /etc/inputrc ,修改相关的配置如下:
  # disable/enable 8bit input
  set meta-flag on
  set input-meta on
  set output-meta on
  set convert-meta off
  关闭 Git Bash 再重启,就可以在 msysGit 的 shell 环境中输入中文了。
  这样就可以录入中文了,仍会有部分字是乱码的,所以大家在使用中,要避免输入中文,如用户名等。
  2. ls 命令显示中文文件名
  最常用的用于显示目录和文件名列表的命令 ls 在显示中文文件名的时候也有问题。中文会显示为乱码
  可以将alias ls="ls --show-control-chars"
  添加到配置文件 /etc/profile 的最后面,用一个空格与原有的内容分开即可,可实现在每次运行 Git Bash 时自动加载。
  3.Windows下修改Git Bush的HOME路径
  Windows默认的HOME和~路径一般都是C:\Users\用户名,每次得用命令切换到常用的Repository下,此操作重复而没有意义。
  修改Git Bush默认的Home路径的方法如下
  打开Git安装位置\etc\profile文件,找到
  # normalize HOME to unix path
  HOME="$(cd "$HOME" ; pwd)"
  export PATH="$HOME/bin:$PATH"
  增加两行,修改后结果如下:
  # normalize HOME to unix path
  HOME="你想要修改的HOME路径"
  HOME="$(cd "$HOME" ; pwd)"
  cd
  export PATH="$HOME/bin:$PATH"
  再次启动Git Bush,就会自动进入新修改后的HOME路径了
  由于有关git东西很多,下面我用于一个例子来向大家进行讲解
  将代码进行本地的备份
  在当前目录下新建了一个test文件(mkdir test)
https://images0.cnblogs.com/blog/412433/201404/121407056069530.png
  切换到test文件中(cd test)
  新建了一个git库(git init)
https://images0.cnblogs.com/blog/412433/201404/121407063722131.png
  新建了一个new.txt文件,内容是hello world(echo “hello world”>>nexw.txt)
https://images0.cnblogs.com/blog/412433/201404/121407071378028.png
  发现new.txt未加入到git的版本控制的监视中untracked files(git status)
https://images0.cnblogs.com/blog/412433/201404/121407078564643.png
  将new.txt加入到监视列表中(git add new.txt)
https://images0.cnblogs.com/blog/412433/201404/121407086226243.png
  发现new.txt已经添加到git的监视列表中,现处于已修改待提交状态(git status)
https://images0.cnblogs.com/blog/412433/201404/121407093724614.png
  将项目里的所有处于已修改待提交状态的文件提交,并且将该版本进行提交,版本标注为first(git commit –m “first”)
https://images0.cnblogs.com/blog/412433/201404/121407102312484.png
  修改new.txt(echo “hello new world”>>new.txt)
  将修改过的文件提交(git add new.txt)
  将该版本进行提交,版本标注为second(git commit –m “second”)
https://images0.cnblogs.com/blog/412433/201404/121407113257283.png
  查看提交历史(git log)
  发现已有两个记录
https://images0.cnblogs.com/blog/412433/201404/121407122152612.png
  现在new.txt中的内容是hello world\r\nhello new world
https://images0.cnblogs.com/blog/412433/201404/121407142473025.png
  切换到first(git checkout aa3975)
  根据git log的结果aa3975即可确定first版本是哪一个
https://images0.cnblogs.com/blog/412433/201404/121407151224124.png
  发现new.txt的内容已经变回new.txt了
https://images0.cnblogs.com/blog/412433/201404/121407158722495.png
  将代码备份到服务器端
  由于校园网的限制这里,我就不用github演示,而是使用京东的代码库进行演示,将代码上传到自己的京东的代码库中
  登陆到https://code.jd.com/
  注册一个用户
https://images0.cnblogs.com/blog/412433/201404/121407168726322.png
  登陆
https://images0.cnblogs.com/blog/412433/201404/121407188258992.png
  点选创建代码库,创建代码库,填写相关信息(私有代码库指只有你邀请的人才可以对代码进行编辑)
https://images0.cnblogs.com/blog/412433/201404/121407202789747.png
  创建完成后,会在代码库管理中,找到它
https://images0.cnblogs.com/blog/412433/201404/121407212784576.png
  点击进入后,复制右下方的地址
https://images0.cnblogs.com/blog/412433/201404/121407222001661.png
  返回到git中,新建一个远程的仓库,名字叫做web(git remote add web https://code.jd.com/temptry/temptry.git)
https://images0.cnblogs.com/blog/412433/201404/121407231842260.png
  切换回master分支下
https://images0.cnblogs.com/blog/412433/201404/121407238726117.png
  将web仓库上的数据取到本地的master分支上(默认产生的主分支),这个需要输入你在京东注册时,输入的用户名和密码
  ,如果觉得每次都要输入很麻烦可以
  1、新建一个名为_netrc的文件,文件内容如下
  machine code.jd.com#服务器地址
  login 111111#用户名
  password 1111#密码
  2、将该文件放到一个不含有空格的路径下如D:\code,而D:\Program Files (x86)则是非法的,含义空格
  3、新建一个名为HOME的环境变量,密码用户名文件所在的路径。
  这样以后就不用输入密码了
https://images0.cnblogs.com/blog/412433/201404/121407245902732.png
  将本地代码提交到服务器上(git push web master)
https://images0.cnblogs.com/blog/412433/201404/121407257472045.png
  发现,代码已经同步到服务器上了
https://images0.cnblogs.com/blog/412433/201404/121407264341201.png
  git还有很多的功能,推荐一本书籍《pro git》,有中文的版本,pdf也很容易从网上找到
页: [1]
查看完整版本: 版本控制