简介

 上篇讲解git的博客,在centos6.5中安装完成了github客户端,接下来我们来熟悉git的操作命令

1、查看自己机器中安装的git版本

[root@jacky conf]# git --version
git version 2.0.

2、进入到当前用户的home目录下,新建一个项目git_project,新建1.java和2.java文件

[root@jacky conf]# cd /home
[root@jacky home]# ls
jacky
[root@jacky home]# ls -l
总用量
drwx------. jacky jacky 12月 : jacky
[root@jacky home]# mkdir git_project
[root@jacky home]# cd git_project/
[root@jacky git_project]# touch .java .java
[root@jacky git_project]# ls -l
总用量
-rw-r--r--. root root 12月 : .java
-rw-r--r--. root root 12月 : .java

3、把git_project项目初始化为git项目,初始化完成后,会在git_project中生成隐藏的.git目录

[root@jacky git_project]# git init
初始化空的 Git 版本库于 /home/git_project/.git/
[root@jacky git_project]# ls -l
总用量
-rw-r--r--. root root 12月 : .java
-rw-r--r--. root root 12月 : .java
[root@jacky git_project]# ls -la
总用量
drwxr-xr-x. root root 12月 : .
drwxr-xr-x. root root 12月 : ..
-rw-r--r--. root root 12月 : .java
-rw-r--r--. root root 12月 : .java
drwxr-xr-x. root root 12月 : .git

4、修改1.java和2.java文件,并把文件添加到缓冲区,查看缓冲区

[root@jacky git_project]# vim .java
[root@jacky git_project]# vim .java
[root@jacky git_project]# git add .java
[root@jacky git_project]# git add .java
[root@jacky git_project]# git status
位于分支 master 初始提交 要提交的变更:
(使用 "git rm --cached <file>..." 撤出暂存区) 新文件: .java
新文件: .java

5、把缓冲区的文件提交到本地仓库,并再次查看缓冲区情况

[root@jacky git_project]# git commit
[master(根提交) 8fa9085] 注释:第一次提交
Committer: root <root@jacky.domain>
您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确
与否。您可以通过下面的命令对其进行明确地设置以免再出现本提示信息: git config --global user.name "Your Name"
git config --global user.email you@example.com 设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份: git commit --amend --reset-author files changed, insertions(+)
create mode .java
create mode .java
[root@jacky git_project]# git status
位于分支 master
无文件要提交,干净的工作区

6、还可以一次性把修改文件提交到本地仓库

[root@jacky git_project]# vi .java
[root@jacky git_project]# git commit -am "注释:第二次提交"

7、在同时修改1.java和2.java文件的情况下,如果我只想提交2.java文件到本地仓库,不提交1.java文件到本地仓库

[root@jacky git_project]# vim .java
[root@jacky git_project]# vim .java
[root@jacky git_project]# git add .
[root@jacky git_project]# git status
位于分支 master
要提交的变更:
(使用 "git reset HEAD <file>..." 撤出暂存区) 修改: .java
修改: .java [root@jacky git_project]# git reset HEAD .java #把1.java清除出缓冲区的命令
重置后撤出暂存区的变更:
M .java
[root@jacky git_project]# git status
位于分支 master
要提交的变更:
(使用 "git reset HEAD <file>..." 撤出暂存区) 修改: .java 尚未暂存以备提交的变更:
(使用 "git add <file>..." 更新要提交的内容)
(使用 "git checkout -- <file>..." 丢弃工作区的改动) 修改: .java [root@jacky git_project]# git commit -am ""

[root@jacky git_project]# git status
  位于分支 master
  无文件要提交,干净的工作区

 

8、查看当前分区和创建一个jacky分区(*号所在的位置表示当前分区)

[root@jacky git_project]# git branch
* master
[root@jacky git_project]# git branch jacky

[root@jacky git_project]# git branch
  jacky
  * master

 

9、切换到jacky分区,在jacky分区修改2.java文件,并提交到本地仓库

[root@jacky git_project]# git checkout jacky
切换到分支 'jacky'
[root@jacky git_project]# git branch
* jacky
master
[root@jacky git_project]# ls
.java .java
[root@jacky git_project]# git branch
* jacky
master
[root@jacky git_project]# vim .java
[root@jacky git_project]# git add .java
[root@jacky git_project]# git commit -am ""

10、再把master切换为当前分区,查看2.java,可以看出2.java文件并没有修改(f分支之间文件互相不受影响)

git checkout master
切换到分支 'master'
[root@jacky git_project]# ls
.java .java
[root@jacky git_project]# cat .java
master
master
master

11、在当前分区为master分区的情况下,合并jacky分支,可以看到分支合并成功,并没有冲突

[root@jacky git_project]# git merge jacky
更新 7c6490c..7de7a8d
Fast-forward
.java | +
file changed, insertion(+)
[root@jacky git_project]# cat .java
master
master
master
branch jacky1

12、故意在master分支和jacky分支上修改2.java文件的同一行,这样合并分支的时候就会出现冲突

[root@jacky git_project]# git branch
jacky
* master
[root@jacky git_project]# vim .java
[root@jacky git_project]# git add .
[root@jacky git_project]# git status
位于分支 master
要提交的变更:
(使用 "git reset HEAD <file>..." 撤出暂存区) 修改: .java [root@jacky git_project]# git commit -am '' [root@jacky git_project]# git checkout jacky
切换到分支 'jacky'
[root@jacky git_project]# cat .java
master
master
master
branch jacky1
[root@jacky git_project]# vim .java
[root@jacky git_project]# git commit -am ''
[jacky 47373c8]
file changed, insertion(+)
[root@jacky git_project]# git branch
* jacky
master
[root@jacky git_project]# git checkout master
切换到分支 'master'
[root@jacky git_project]# git merge jacky
自动合并 .java
冲突(内容):合并冲突于 .java
自动合并失败,修正冲突然后提交修正的结果。
[root@jacky git_project]# cat .java
master
master
master
branch jacky1
<<<<<<< HEAD
master jacky222 #这是maseter分支的内容
=======
branch jacky222222222 #这是jacky分支的内容
>>>>>>> jacky

13、冲突解决,跟svn一样,手动修改冲突的内容,再次提交

[root@jacky git_project]# vim .java
[root@jacky git_project]# git commit -am '解决冲突'
[master c1f3cea] 解决冲突 [root@jacky git_project]# git status

  位于分支 master
  无文件要提交,干净的工作区

 

14、git 还可以给某次提交到本地仓库的操作做标记(注意默认标记的是工程上一次提交到本地库操作的位置)

[root@jacky git_project]# git tag -a v1.0      
[root@jacky git_project]# git log --oneline --decorate
c1f3cea (HEAD, tag: v1.0, master) 解决冲突           #这个地方就是我标记的位置
47373c8 (jacky) 5
8c12ca3 2
7de7a8d 2
7c6490c 2
b4fbae6 2
f53f281 注释:第二次提交
8fa9085 注释:第一次提交

15、查看提交到本地仓库的日志

[root@jacky git_project]# git log
commit c1f3ceaaeb622f1b525114d0e6dc28cf974a2321
Merge: 8c12ca3 47373c8
Author: jacky <@qq.com>
Date: Sat Dec :: + 解决冲突 commit 47373c84b8e2b09f882c79b3115a84ed54b89a8a
Author: jacky <@qq.com>
Date: Sat Dec :: + commit 8c12ca3887de310d5b4368e9953d7a95ffd166ae
Author: jacky <@qq.com>
Date: Sat Dec :: +

16、标记到指定位置也行,如下

[root@jacky git_project]# git tag -a v1. f53f281
[root@jacky git_project]# git log --oneline --decorate
c1f3cea (HEAD, tag: v1., master) 解决冲突
47373c8 (jacky)
8c12ca3
7de7a8d
7c6490c
b4fbae6
f53f281 (tag: v1.) 注释:第二次提交 #指定标记到这个位置
8fa9085 注释:第一次提交

17、在合并分支时重现冲突问题,我们也可以像svn一样,进行回滚

[root@jacky git_project]# git reset --hard f53f281  #回滚到f53f281的位置
HEAD 现在位于 f53f281 注释:第二次提交
[root@jacky git_project]# ls -;
ls: 无法访问-: 没有那个文件或目录
[root@jacky git_project]# ls
.java .java
[root@jacky git_project]# cat .java
master
master

到这里就讲解完git的基本命令了,下篇博客讲,怎么把本地仓库的工程,提交到github和如何从github同步工程到本地

git的常用命令的更多相关文章

  1. GIT 版本控制常用命令学习汇总

    GIT 版本控制常用命令汇总 git version 查看当前git版本信息 git help 获取全部命令帮助信息 git help <command> 获取指定命令帮助信息 git c ...

  2. git log 常用命令及技巧

    git log常用命令以及技巧 1.git log 如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者.提交日期.和提交说明.如果记录过多,则按Page Up.Pag ...

  3. Git基本常用命令

    Git基本常用命令如下: mkdir: XX (创建一个空目录 XX指目录名) pwd: 显示当前目录的路径. git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件. git ...

  4. Git是什么、Git的功能、为什么versioncontrol用Git、Git的常用命令、Git的优缺点

    Git是什么 git是目前世界上最先进的分布式版本控制系统(没有之一). Git是用于 Linux内核开发的版本控制工具.与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版 ...

  5. Git stash 常用命令

    参考: Git: How to look at the stash Git学习笔记05--git stash Git stash 常用命令 1.git stash: 保存当前的工作进度: 2.git ...

  6. Git 基础 —— 常用命令

    Git 基础学习系列 Git 基础 -- 安装 配置 别名 对象 Git 基础 -- 常用命令 Git 基础 -- 常见使用场景 Git基础 -- Github 的使用 git init 创建 Git ...

  7. git之常用命令

    git之常用命令 1.下载远程仓库最新代码 $ git pull --rebase origin master 2.上传代码 $ git push origin master 3.退出编辑 ESC + ...

  8. git的常用命令。。

    git的常用命令.. git help <command>  显示command的help git show  显示某次提交的内容 git show $id git co -- <f ...

  9. Git - Git基本常用命令

    Git基本常用命令 mkdir:         XX (创建一个空目录 XX指目录名) pwd:          显示当前目录的路径. git init          把当前的目录变成可以管理 ...

  10. Git的常用命令记录

    Git的常用命令记录 1.与远程仓库建立连接,即关联一个远程库 git remote add origin git@server-name:path/repo-name.git; 2.查看当前分支  ...

随机推荐

  1. 性能调优利器之strace

    最近需要对一个自己开发的socket server的性能进行分析,刚开始还想了好长时间怎么来分析.后来才意识到其实使用strace就足够了. 观察到的现象是server单进程CPU使用率97,但磁盘i ...

  2. Angular初学

    简介: angularjs是基本js开发的一个前端类库,主要致力于减轻开发人员在开发Ajax应用过程中的痛苦,适合来做单应用. 客户端模板: Angualr中,模板和数据都会被发送到浏览器中,然后在客 ...

  3. VS2015解决非Unicode编码包含中文字段无法编译的问题

    用VS2015打开并编译,定位到编译错误的文件(.cs而不是可视化编辑视图) 文件--高级保存选项--编码 改为 Unicode-代码页1200 这样不论用VS2015/2013/2012/2010 ...

  4. 161223、mysql锁的两个例子

    版本:mysql5.5.52 存储引擎:InnoDB 隔离级别:READ-COMMITTED 示例一: 事务1:左图      事务2:右图 1. 事务2中属于快照读,基于多版本的并发控制协议--MV ...

  5. 移动端接口:java写get方式访问数据(springmvc+spring。。。)

    很多时候,一个问题想明白,找对点了再去问,这样被问的人也知道怎么给你讲,你也听的明白. 就比如做移动端接口,上去就问 怎么弄接口呀,其实是没找到主要的点上,所以不知道怎么弄,那个点就是手机接口是干嘛的 ...

  6. 一个ubuntu phper的自我修养(ubuntu安装)

    ubuntu安装篇 一.ubuntu下载 到ubuntu官网下载适合自己电脑配置的系统版本,此处不做展开. 二.制作USB启动盘 在windows下制作USB启动盘,工具是universal usb ...

  7. iOS定时器的使用

    iOS开发中定时器经常会用到,iOS中常用的定时器有三种,分别是NSTime,CADisplayLink和GCD. NSTimer 方式1 // 创建定时器 NSTimer *timer = [NST ...

  8. Cocosd-x的坐标系

    OpenGL 坐标系 :   原点在屏幕左下角,x 轴向右,y 轴向上. UI坐标体系       :   原点在屏幕左上角,x 轴向右,y 轴向下. 屏幕坐标系:    UI 世界坐标系:  也叫绝 ...

  9. 如何静态添加toolbar到datagrid

    这个示例向你展示如何添加toolbar到datagrid. 创建 DataGrid <table id="tt" class="easyui-datagrid&qu ...

  10. PHPCMS企业站制作

    安装 将下载好的文件放到www目录下 地址栏中输入 http://localhost:8080/phpcms/install_package/install 打开安装页面 进行安装即可. 如果出现: ...