Git使用方法(Windows操作系统下)

来源:互联网 发布:长江证券 mac 编辑:程序博客网 时间:2024/06/17 20:16

文章参照于《第一行代码——Android》中关于git使用方法的内容

一、安装

(1)在http://msysgit.github.io/上下载Git安装包,下载后打开,一路Next即可安装完毕

(2)打开Git Bash命令行窗口,输入以下命令可用于配置用户名和用户邮箱:

        

输入 可用于查看用户名

输入 可用于查看用户邮箱

 

二、创建代码仓库

进入项目文件夹:


在这个目录下输入git init:


仓库创建完成后,会在项目的根目录下生成一个隐藏的.git文件夹,这个文件夹就是用来记录本地所有的Git操作的,可以通过ls –al命令来查看一下:


三、提交本地代码

首先要添加文件

添加单个文件:


添加一个文件夹:


添加目录下所有文件和文件夹:


有时候会报Warning:


原因:windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add. 时会出现提示。

解决方法:

先清空当前的代码仓库:


禁用自动转换:


重新创建代码仓库:


添加目录下所有文件及文件夹,会发现不再报Warning:


在以后git的使用过程中因为已经设置过一次,所以不需要再设置也不会报Warning了。

 

提交代码:


注意-m后面的字符串为提交的描述信息,一定要有,否则会被认定为不合法。

*在add之前忽略某些文件夹:

使用vim新建一个文件,名为 .gitignore:


在里面输入以下内容:


保存并退出(按esc键后输入:wq或者:x)都可以

输入git add .添加文件夹下未被忽略的所有文件夹和文件,然后执行commit命令(git commit –m “Test”)完成提交。

 

四、查看修改的内容

提交过的代码如果没有修改的话,输入git status会提示没有任何可提交的文件:


现在在某个文件中删掉某一行代码,再git status一次:


会提示src/com/test/electronicbook/LoginActivity.java文件中有改变

 

查看发生了那些改变可用命令git diff:


如果只想看到某文件的改变,可在diff后加文件路径(为了看得更清楚,又修改了一个文件):


 

撤销未提交的修改,使用checkout命令:


由于使用的是eclipse编程,所以在eclipse中会出现如下窗口:


建议在git bash中操作的时候文件不要处于打开的状态。

此时只会显示另一个文件发生改动,而撤销改动的文件不会有改动了:


这种方法只适用于还没有执行过add命令的文件,如果某个文件已经被添加过,则不能用这种方法进行撤销,做个测试。

现在仓库里有一个文件已被改动但还没有add,把它添加进去,然后查看修改:

此时执行checkout命令也无济于事了:


这种情况下应该先取消添加,再撤回提交,使用reset HEAD + 文件路径:

取消添加后会发现文件又变回了还未添加的状态:


然后再使用checkout命令撤销原来修改的内容:


五、查看提交记录

git log


每次提交记录都会包括提交id、提交人、提交日期以及提交描述四个信息。

现在修改某个文件后再提交一次:


然后查看记录:


当提交记录很多,要制定查看其中某一条记录时,可以在命令中指定该记录的id,并加上-1参数表示我们只想看到一行记录:

 

如果不加上-1这个参数的话,会将这条记录及它之前的所有记录都打印出来:


如果要查看这条提交记录具体修改了什么内容,可以在命令中加入-p参数:


减号代表删除的部分,加号代表添加的部分(红色为删除部分,绿色为添加的部分)

 

六、查看当前项目的分支

git branch


当前项目还没有创建任何分支,因此只有一个master分支存在,也就是主干线。

新建一个分支,然后查看分支:


*代表当前所在分支

切换分支:

git checkout + 分支名


各自分支下会保留最新的commit上去的文件

合并操作:

首先要先切换到master分支上,然后再merge:


这里产生了冲突,需要手动解决冲突:


在merge之后,需要将master的文件add之后再commit一次,否则将不能切换其它分支:


add并commit之后:


括号内也会从(master|MERGING)变为(master)

当不再需要testVersion1.0这个分支的时候,可以删除它:

 

七、向将本地代码同步到远程版本库

创建一个远程版本库:

登录(如果没有账号的话就注册一个)GitHub后,通过右上角的创建仓库按钮创建一个新的仓库:

 

点击后出现如下列表:


Repositoryname是仓库名称,Description是对这个仓库的描述,默认勾选public,勾选Initialize this repository with a README会创建一个README.md文件,包含刚刚输入的仓库描述、添加.gitignore的话选择Android,协议选择Apache License 2.0。再点击一次Create repository即可完成创建仓库。

README.md中的内容:

 

远程版本库的地址:


以下实例与上面无关,用的是另外一个repository

将远程版本库克隆到本地:

获得远程版本库的Git地址后,进入项目文件夹,输入git clone https://github.com/sysukehan/electronicbook.git(远程版本库的git地址)将远程版本库克隆到本地:


此时在项目文件夹下会出现一个electronicbook的文件夹,里面是刚刚clone下来的三个文件和一个.git的隐藏文件夹:


将这四个文件拷贝(或剪切)至上一层,最终文件目录如下:

 

之前在github上新建项目时.gitignore选择了Android:


因此.ignore文件中已经将不需要添加到仓库中的文件列举好了:

 

接下来将项目中的文件提交到GitHub上:

将所有文件添加到版本控制:


在本地执行提交操作:


将提交内容同步到远程版本库,也就是GitHub上面:


其中origin 部分指定的是远程版本库的Git 地址,master 部分指定的是同步到哪一个分支上,上述命令就完成了将本地代码同步到https://github.com/exmaple/test.git这个版本库的master 分支上的功能。会提示输入GitHub上的用户名和密码:

验证正确后开始上传文件:


文件上传完毕:


刷新GitHub的项目主页,可以看到项目已经上传到主页上:

 


八、将远程版本库上的代码同步到本地

有两种命令:

1、fetch命令

git fetch origin master

执行这个命令后,就会将远程版本库上的代码同步到本地,不过同步下来的代码并不会合并到任何分支上去,而是会存放在到一个origin/master 分支上:


这时可以通过diff 命令来查看远程版本库上到底修改了哪些东西:


因为两个版本一样,所以没有修改的东西

 

之后再调用merge 命令将origin/master 分支上的修改合并到主分支上即可,如下所示:


代码一样也就没有冲突,merge完成。

2、pull命令

而pull 命令则是相当于将fetch 和merge这两个命令放在一起执行了,它可以从远程版本库上获取最新的代码并且合并到本地,如下所示:


0 0
原创粉丝点击