git的常用命令
2017-01-01 18:38
567 查看
简介
上篇讲解git的博客,在centos6.5中安装完成了github客户端,接下来我们来熟悉git的操作命令
1、查看自己机器中安装的git版本
2、进入到当前用户的home目录下,新建一个项目git_project,新建1.java和2.java文件
3、把git_project项目初始化为git项目,初始化完成后,会在git_project中生成隐藏的.git目录
4、修改1.java和2.java文件,并把文件添加到缓冲区,查看缓冲区
5、把缓冲区的文件提交到本地仓库,并再次查看缓冲区情况
6、还可以一次性把修改文件提交到本地仓库
7、在同时修改1.java和2.java文件的情况下,如果我只想提交2.java文件到本地仓库,不提交1.java文件到本地仓库
[root@jackygit_project]#gitstatus
位于分支master
无文件要提交,干净的工作区
8、查看当前分区和创建一个jacky分区(*号所在的位置表示当前分区)
[root@jackygit_project]#gitbranch
jacky
*master
9、切换到jacky分区,在jacky分区修改2.java文件,并提交到本地仓库
10、再把master切换为当前分区,查看2.java,可以看出2.java文件并没有修改(f分支之间文件互相不受影响)
11、在当前分区为master分区的情况下,合并jacky分支,可以看到分支合并成功,并没有冲突
12、故意在master分支和jacky分支上修改2.java文件的同一行,这样合并分支的时候就会出现冲突
13、冲突解决,跟svn一样,手动修改冲突的内容,再次提交
位于分支master
无文件要提交,干净的工作区
14、git还可以给某次提交到本地仓库的操作做标记(注意默认标记的是工程上一次提交到本地库操作的位置)
[root@jackygit_project]#gittag-av1.0
[root@jackygit_project]#gitlog--oneline--decorate
c1f3cea(HEAD,tag:v1.0,master)解决冲突#这个地方就是我标记的位置
47373c8(jacky)5
8c12ca32
7de7a8d2
7c6490c2
b4fbae62
f53f281注释:第二次提交
8fa9085注释:第一次提交
15、查看提交到本地仓库的日志
16、标记到指定位置也行,如下
17、在合并分支时重现冲突问题,我们也可以像svn一样,进行回滚
到这里就讲解完git的基本命令了,下篇博客讲,怎么把本地仓库的工程,提交到github和如何从github同步工程到本地
上篇讲解git的博客,在centos6.5中安装完成了github客户端,接下来我们来熟悉git的操作命令
1、查看自己机器中安装的git版本
[root@jackyconf]#git--version gitversion2.0.0
2、进入到当前用户的home目录下,新建一个项目git_project,新建1.java和2.java文件
[root@jackyconf]#cd/home [root@jackyhome]#ls jacky [root@jackyhome]#ls-l 总用量4 drwx------.30jackyjacky409612月3113:40jacky [root@jackyhome]#mkdirgit_project [root@jackyhome]#cdgit_project/ [root@jackygit_project]#touch1.java2.java [root@jackygit_project]#ls-l 总用量0 -rw-r--r--.1rootroot012月3117:011.java -rw-r--r--.1rootroot012月3117:012.java
3、把git_project项目初始化为git项目,初始化完成后,会在git_project中生成隐藏的.git目录
[root@jackygit_project]#gitinit 初始化空的Git版本库于/home/git_project/.git/ [root@jackygit_project]#ls-l 总用量0 -rw-r--r--.1rootroot012月3117:011.java -rw-r--r--.1rootroot012月3117:012.java [root@jackygit_project]#ls-la 总用量12 drwxr-xr-x.3rootroot409612月3117:02. drwxr-xr-x.4rootroot409612月3117:01.. -rw-r--r--.1rootroot012月3117:011.java -rw-r--r--.1rootroot012月3117:012.java drwxr-xr-x.7rootroot409612月3117:02.git
4、修改1.java和2.java文件,并把文件添加到缓冲区,查看缓冲区
[root@jackygit_project]#vim1.java [root@jackygit_project]#vim2.java [root@jackygit_project]#gitadd1.java [root@jackygit_project]#gitadd2.java [root@jackygit_project]#gitstatus 位于分支master 初始提交 要提交的变更: (使用"gitrm--cached<file>..."撤出暂存区) 新文件:1.java 新文件:2.java
5、把缓冲区的文件提交到本地仓库,并再次查看缓冲区情况
[root@jackygit_project]#gitcommit [master(根提交)8fa9085]注释:第一次提交 Committer:root<root@jacky.domain> 您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确 与否。您可以通过下面的命令对其进行明确地设置以免再出现本提示信息: gitconfig--globaluser.name"YourName" gitconfig--globaluser.emailyou@example.com 设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份: gitcommit--amend--reset-author 2fileschanged,2insertions(+) createmode1006441.java createmode1006442.java [root@jackygit_project]#gitstatus 位于分支master 无文件要提交,干净的工作区
6、还可以一次性把修改文件提交到本地仓库
[root@jackygit_project]#vi1.java [root@jackygit_project]#gitcommit-am"注释:第二次提交"
7、在同时修改1.java和2.java文件的情况下,如果我只想提交2.java文件到本地仓库,不提交1.java文件到本地仓库
[root@jackygit_project]#vim1.java [root@jackygit_project]#vim2.java [root@jackygit_project]#gitadd. [root@jackygit_project]#gitstatus 位于分支master 要提交的变更: (使用"gitresetHEAD<file>..."撤出暂存区) 修改:1.java 修改:2.java [root@jackygit_project]#gitresetHEAD1.java#把1.java清除出缓冲区的命令 重置后撤出暂存区的变更: M1.java [root@jackygit_project]#gitstatus 位于分支master 要提交的变更: (使用"gitresetHEAD<file>..."撤出暂存区) 修改:2.java 尚未暂存以备提交的变更: (使用"gitadd<file>..."更新要提交的内容) (使用"gitcheckout--<file>..."丢弃工作区的改动) 修改:1.java [root@jackygit_project]#gitcommit-am"2"
[root@jackygit_project]#gitstatus
位于分支master
无文件要提交,干净的工作区
8、查看当前分区和创建一个jacky分区(*号所在的位置表示当前分区)
[root@jackygit_project]#gitbranch
*master
[root@jackygit_project]#gitbranchjacky
[root@jackygit_project]#gitbranch
jacky
*master
9、切换到jacky分区,在jacky分区修改2.java文件,并提交到本地仓库
[root@jackygit_project]#gitcheckoutjacky
切换到分支'jacky'
[root@jackygit_project]#gitbranch
*jacky
master
[root@jackygit_project]#ls
1.java2.java
[root@jackygit_project]#gitbranch
*jacky
master
[root@jackygit_project]#vim2.java
[root@jackygit_project]#gitadd2.java
[root@jackygit_project]#gitcommit-am"2"
10、再把master切换为当前分区,查看2.java,可以看出2.java文件并没有修改(f分支之间文件互相不受影响)
gitcheckoutmaster
切换到分支'master'
[root@jackygit_project]#ls
1.java2.java
[root@jackygit_project]#cat2.java
master2
master3
master4
11、在当前分区为master分区的情况下,合并jacky分支,可以看到分支合并成功,并没有冲突
[root@jackygit_project]#gitmergejacky
更新7c6490c..7de7a8d
Fast-forward
2.java|1+
1filechanged,1insertion(+)
[root@jackygit_project]#cat2.java
master2
master3
master4
branchjacky1
12、故意在master分支和jacky分支上修改2.java文件的同一行,这样合并分支的时候就会出现冲突
[root@jackygit_project]#gitbranch
jacky
*master
[root@jackygit_project]#vim2.java
[root@jackygit_project]#gitadd.
[root@jackygit_project]#gitstatus
位于分支master
要提交的变更:
(使用"gitresetHEAD<file>..."撤出暂存区)
修改:2.java
[root@jackygit_project]#gitcommit-am'2'
[root@jackygit_project]#gitcheckoutjacky
切换到分支'jacky'
[root@jackygit_project]#cat2.java
master2
master3
master4
branchjacky1
[root@jackygit_project]#vim2.java
[root@jackygit_project]#gitcommit-am'5'
[jacky47373c8]5
1filechanged,1insertion(+)
[root@jackygit_project]#gitbranch
*jacky
master
[root@jackygit_project]#gitcheckoutmaster
切换到分支'master'
[root@jackygit_project]#gitmergejacky
自动合并2.java
冲突(内容):合并冲突于2.java
自动合并失败,修正冲突然后提交修正的结果。
[root@jackygit_project]#cat2.java
master2
master3
master4
branchjacky1
<<<<<<<HEAD
masterjacky222#这是maseter分支的内容
=======
branchjacky222222222#这是jacky分支的内容
>>>>>>>jacky
13、冲突解决,跟svn一样,手动修改冲突的内容,再次提交
[root@jackygit_project]#vim2.java
[root@jackygit_project]#gitcommit-am'解决冲突'
[masterc1f3cea]解决冲突
[root@jackygit_project]#gitstatus
位于分支master
无文件要提交,干净的工作区
14、git还可以给某次提交到本地仓库的操作做标记(注意默认标记的是工程上一次提交到本地库操作的位置)
[root@jackygit_project]#gittag-av1.0
[root@jackygit_project]#gitlog--oneline--decorate
c1f3cea(HEAD,tag:v1.0,master)解决冲突#这个地方就是我标记的位置
47373c8(jacky)5
8c12ca32
7de7a8d2
7c6490c2
b4fbae62
f53f281注释:第二次提交
8fa9085注释:第一次提交
15、查看提交到本地仓库的日志
[root@jackygit_project]#gitlog
commitc1f3ceaaeb622f1b525114d0e6dc28cf974a2321
Merge:8c12ca347373c8
Author:jacky<1073740572@qq.com>
Date:SatDec3118:18:272016+0800
解决冲突
commit47373c84b8e2b09f882c79b3115a84ed54b89a8a
Author:jacky<1073740572@qq.com>
Date:SatDec3118:14:472016+0800
5
commit8c12ca3887de310d5b4368e9953d7a95ffd166ae
Author:jacky<1073740572@qq.com>
Date:SatDec3118:12:002016+0800
16、标记到指定位置也行,如下
[root@jackygit_project]#gittag-av1.1f53f281
[root@jackygit_project]#gitlog--oneline--decorate
c1f3cea(HEAD,tag:v1.0,master)解决冲突
47373c8(jacky)5
8c12ca32
7de7a8d2
7c6490c2
b4fbae62
f53f281(tag:v1.1)注释:第二次提交#指定标记到这个位置
8fa9085注释:第一次提交
17、在合并分支时重现冲突问题,我们也可以像svn一样,进行回滚
[root@jackygit_project]#gitreset--hardf53f281#回滚到f53f281的位置
HEAD现在位于f53f281注释:第二次提交
[root@jackygit_project]#ls-;
ls:无法访问-:没有那个文件或目录
[root@jackygit_project]#ls
1.java2.java
[root@jackygit_project]#cat1.java
master1
master2
到这里就讲解完git的基本命令了,下篇博客讲,怎么把本地仓库的工程,提交到github和如何从github同步工程到本地