版本控制-git的使用

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

这周给大家介绍下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演示,而是使用京东的代码库进行演示,将代码上传到自己的京东的代码库中

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

注册一个用户

登陆

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

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

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

返回到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也很容易从网上找到

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏zaking's

走近webpack(2)--css打包及压缩js

  前面的文章介绍了webpack的devServer以及多入口多出口文件的配置,咱们继续往下学。   在开始学习接下来的知识之前,我们先回顾一下,前文提到了w...

52980
来自专栏企鹅号快讯

那些实用的Nginx规则

1. 概述 大家都知道Nginx有很多功能模块,比如反向代理、缓存等,这篇文章总结下我们这些年实际环境中那些有用的Nginx规则和模块,大部分是用法的概括及介绍...

26450
来自专栏MongoDB中文社区

使用mlaunch和m快速搭建MongoDB测试集群

不知道大家在使用MongoDB的时候有没有遇到突然想要一个集群但是手边又没有的时候?特别是我已经升级到4.0了,突然想要一个3.2的集群怎么办?然后去下载,改配...

12210
来自专栏抠抠空间

python并发编程之多进程(理论)

一、什么是进程 进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。 二、进程与程序的区别 程序:仅仅是一堆代 进程:是指打开程序运行的过程 三、...

43870
来自专栏屈政斌的专栏

【腾讯云的1001种玩法】centos 7 部署 dotnetcore + Angular2 实践

本文主要讲述了使用腾讯云主机,在centos 7 部署 dotnetcore + Angular2 的实践过程,该项目目前只是用于学习 dotnetcore ...

2.7K10
来自专栏我和PYTHON有个约会

python-应用层-网络编程-FTP

前面描述的基于TCP/UDP协议的网络程序开发,主要是针对传输层协议的底层代码实现 在实际操作过程中,更多的情况是直接操作应用层的数据协议的网络程序开发,如文...

13530
来自专栏racaljk

静态库(.a)与动态库(.so)的简明介绍

gcc有很多关于静态库,动态库的选项如-l,-L,-fPIC,-shared -Wl,-soname,看着很复杂容易混淆,其实静态库和动态库都是应需而生,只要有...

18750
来自专栏androidBlog

Git 命令行教程及实例教程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/...

14610
来自专栏极客慕白的成长之路

网站服务器修改SSH默认22端口

1.9K50
来自专栏北京马哥教育

Linux系统命令和使用技巧8则

我们在平时使用 Linux 系统时,无论在终端下还是在图形桌面下,都有一些快捷的命令和操作的技巧,本文就向新手简单介绍常用的几种: 1、处理特殊的文件名 假设L...

42480

扫码关注云+社区

领取腾讯云代金券