版本控制-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安装位置\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)

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\r\nhello 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也很容易从网上找到

posted on 2014-04-12 14:08  magicsoar  阅读(2811)  评论(5编辑  收藏  举报

导航