大家好,我又回来了,上个礼拜因为熬夜看球感冒了,所以没有写新的文章出来。
这周给大家介绍下git的使用
我们为什么需要一个版本控制的软件呢?
我相信大家很多人在进行版本控制时往往都是使用复制的方式,不过这样做的后果是
1.需要程序员自己记住每一个复制所对应的版本是多少,
2.项目回退时很容易混淆当前的工作路径,并且对以前的版本进行修改,导致以前的版本被错误的修改
3.多人合作时,会出现大家操作的项目的版本不一致的现象
所以我们需要一个版本控制软件来帮助我们进行版本控制,减少我们记忆上的负担和使版本控制变得简单易操作
一、什么是git
Git是一个开源的分布式版本控制系统,能够有效的对项目进行版本的控制。
Git既可以用于个人的,本地的版本控制,又可以在多人合作时,将版本备份到服务器,保证多人间版本的一致性
二、git的安装
下载地址 https://code.google.com/p/msysgit/downloads/list
第一步 在官方网站上下载
第二步 安装,一路next,直到出现如下界面
第一个意思是只能通过git bash输入命令,
第二个指可以通过cmd启动git,输入git相关命令必须等它启动后
第三个指将可以在cmd中直接输入git的相关命令,注意这个可能会覆盖cmd中原有的命令
建议大家选第一个就可以了
是为了处理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)
切换到test文件中(cd test)
新建了一个git库(git init)
新建了一个new.txt文件,内容是hello world(echo “hello world”>>nexw.txt)
发现new.txt未加入到git的版本控制的监视中untracked files(git status)
将new.txt加入到监视列表中(git add new.txt)
发现new.txt已经添加到git的监视列表中,现处于已修改待提交状态(git status)
将项目里的所有处于已修改待提交状态的文件提交,并且将该版本进行提交,版本标注为first(git commit –m “first”)
修改new.txt(echo “hello new world”>>new.txt)
将修改过的文件提交(git add new.txt)
将该版本进行提交,版本标注为second(git commit –m “second”)
查看提交历史(git log)
发现已有两个记录
现在new.txt中的内容是hello world\r\nhello new world
切换到first(git checkout aa3975)
根据git log的结果aa3975即可确定first版本是哪一个
发现new.txt的内容已经变回new.txt了
将代码备份到服务器端
由于校园网的限制这里,我就不用github演示,而是使用京东的代码库进行演示,将代码上传到自己的京东的代码库中
注册一个用户
登陆
点选创建代码库,创建代码库,填写相关信息(私有代码库指只有你邀请的人才可以对代码进行编辑)
创建完成后,会在代码库管理中,找到它
点击进入后,复制右下方的地址
返回到git中,新建一个远程的仓库,名字叫做web(git remote add web https://code.jd.com/temptry/temptry.git)
切换回master分支下
将web仓库上的数据取到本地的master分支上(默认产生的主分支),这个需要输入你在京东注册时,输入的用户名和密码
,如果觉得每次都要输入很麻烦可以
1、新建一个名为_netrc的文件,文件内容如下
machine code.jd.com #服务器地址
login 111111 #用户名
password 1111 #密码
2、将该文件放到一个不含有空格的路径下如D:\code,而D:\Program Files (x86)则是非法的,含义空格
3、新建一个名为HOME的环境变量,密码用户名文件所在的路径。
这样以后就不用输入密码了
将本地代码提交到服务器上(git push web master)
发现,代码已经同步到服务器上了
git还有很多的功能,推荐一本书籍《pro git》,有中文的版本,pdf也很容易从网上找到