zoukankan      html  css  js  c++  java
  • 版本控制-git的使用

    大家好,我又回来了,上个礼拜因为熬夜看球感冒了,所以没有写新的文章出来。

    这周给大家介绍下git的使用

    我们为什么需要一个版本控制的软件呢?

    我相信大家很多人在进行版本控制时往往都是使用复制的方式,不过这样做的后果是

    1.需要程序员自己记住每一个复制所对应的版本是多少,

    2.项目回退时很容易混淆当前的工作路径,并且对以前的版本进行修改,导致以前的版本被错误的修改

    3.多人合作时,会出现大家操作的项目的版本不一致的现象

    所以我们需要一个版本控制软件来帮助我们进行版本控制,减少我们记忆上的负担和使版本控制变得简单易操作

    一、什么是git

    Git是一个开源的分布式版本控制系统,能够有效的对项目进行版本的控制。

    Git既可以用于个人的,本地的版本控制,又可以在多人合作时,将版本备份到服务器,保证多人间版本的一致性

    二、git的安装

    下载地址 https://code.google.com/p/msysgit/downloads/list

    第一步 在官方网站上下载

    image

    第二步  安装,一路next,直到出现如下界面

    image

    第一个意思是只能通过git bash输入命令,

    第二个指可以通过cmd启动git,输入git相关命令必须等它启动后

    第三个指将可以在cmd中直接输入git的相关命令,注意这个可能会覆盖cmd中原有的命令

    建议大家选第一个就可以了

    image

    是为了处理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安装位置etcprofile文件,找到

    # 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)

    image

    切换到test文件中(cd test)

    新建了一个git库(git init)

    image

    新建了一个new.txt文件,内容是hello world(echo “hello world”>>nexw.txt)

    image

    发现new.txt未加入到git的版本控制的监视中untracked files(git status)

    image

    将new.txt加入到监视列表中(git add new.txt)

    image

    发现new.txt已经添加到git的监视列表中,现处于已修改待提交状态(git status)

    image

    将项目里的所有处于已修改待提交状态的文件提交,并且将该版本进行提交,版本标注为first(git commit –m “first”)

    image

    修改new.txt(echo “hello new world”>>new.txt)

    将修改过的文件提交(git add new.txt)

    将该版本进行提交,版本标注为second(git commit –m “second”)

    image

    查看提交历史(git log)

    发现已有两个记录

    image

    现在new.txt中的内容是hello world hello new world

    image

    切换到first(git checkout aa3975)

    根据git log的结果aa3975即可确定first版本是哪一个

    image

    发现new.txt的内容已经变回new.txt了

    image

    将代码备份到服务器端

    由于校园网的限制这里,我就不用github演示,而是使用京东的代码库进行演示,将代码上传到自己的京东的代码库中

    登陆到https://code.jd.com/

    注册一个用户

    image

    登陆

    image

    点选创建代码库,创建代码库,填写相关信息(私有代码库指只有你邀请的人才可以对代码进行编辑)

    image

    创建完成后,会在代码库管理中,找到它

    image

    点击进入后,复制右下方的地址

    image

    返回到git中,新建一个远程的仓库,名字叫做web(git remote add web https://code.jd.com/temptry/temptry.git

    image

    切换回master分支下

    image

    将web仓库上的数据取到本地的master分支上(默认产生的主分支),这个需要输入你在京东注册时,输入的用户名和密码

    ,如果觉得每次都要输入很麻烦可以

    1、新建一个名为_netrc的文件,文件内容如下

    machine code.jd.com  #服务器地址

    login 111111  #用户名

    password 1111  #密码

    2、将该文件放到一个不含有空格的路径下如D:code,而D:Program Files (x86)则是非法的,含义空格

    3、新建一个名为HOME的环境变量,密码用户名文件所在的路径。

    这样以后就不用输入密码了

    image

    将本地代码提交到服务器上(git push web master)

    image

    发现,代码已经同步到服务器上了

    image

    git还有很多的功能,推荐一本书籍《pro git》,有中文的版本,pdf也很容易从网上找到

  • 相关阅读:
    [HNOI2002]营业额统计_Treap
    Catch That Cow_bfs
    Knight Moves
    Hie with the Pie
    tp5.1 错误 No input file specified.
    Jmeter通过BeanShell Sampler获取Jmeter的Bin路径,并存入变量供后面的脚本调用
    Jmeter如何把CSV文件的路径设置成一个变量,且变量的值是一个相对路径
    Autotest Weekly Report
    调试Javascript代码(浏览器F12)
    Javascript中escape()、encodeURI()、encodeURIComponent()的区别
  • 原文地址:https://www.cnblogs.com/magicsoar/p/3660379.html
Copyright © 2011-2022 走看看