git init        --    初始化仓库,

git clone    --    从远端克隆仓库到本地

git status   --    查看git仓库的状态

git log        --    查看git仓库的日志

git add       --   将修改提交到本地仓库,git add filename就是提交filename这个文件,git add .就是提交所以变化的文件

git diff        --    不带参数的话就是显示当前工作区的修改变化。

git diff [branchA] [branchB]可以用来比较两个分支。

git commit  -- 提交被add进来的改动

git commit -m “the commit message"

                      git commit -a 会先把所有已经track的文件的改动add进来,然后提交(有点像svn的一次提交,不用先暂存). 对于没有track的文件,还是需要git add一下.
                      git commit --amend 增补提交. 会使用与当前提交节点相同的父节点进行一次新的提交,旧的提交将会被取消.
 
git reset    --  可以理解成删除本地仓库上的一次提交,相当于还原到上次提交的状态
git revert   --   反转撤销提交.只要把出错的提交(commit)的名字(reference)作为参数传给命令就可以了.
                      git revert HEAD: 撤销最近的一个提交.

                      git revert会创建一个反向的新提交,可以通过参数-n来告诉Git先不要提交.

这个我要好好理解下,因为用的不多,也只是在smartgit上用过几次。

git branch  --  创建分支

git checkout -- 切换到某个文件,如果是git checkout filename的话就是丢弃filename这个文件的所有修改。

git merge     -- 把一个分支merge到当前分支

如果出现冲突,需要手动修改,可以用git mergetool.

                       解决冲突的时候可以用到git diff,解决完之后用git add添加,即表示冲突已经被resolved.
git tag         -- 打tag,用git tag v1.0
git fetch      -- 
git pull        -- 
git  push     --
git rebase   --
 
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Submodule的操作方式,这才是我想写这边随笔的真正目的。
我是用github测试的:
1.现在git hub上创建两个git仓库:例如Test_Submodule_SubTest_Submodule两个常规仓库。
2.将Test_Submodule这个仓库clone到本地,然后cd到根目录下。
3.这一步才是重要的一步: git submodule add https://github.com/Kent-Hu/Test_Submodule_Sub.git Sub/Test_Submodule_Sub,就是将一个仓库以submodule的形式添加到另一个仓库,这个时候就会将Test_Submodule_Sub.git克隆到Test_Submodule的/sub目录下。
4.git add .    将新添加的所有文件加到worktree。
5.git push    将文件添加到远端。
使用:
git clone https://github.com/Kent-Hu/Test_Submodule.git的话是没法克隆submodule下的源码的,需要加--recursive选项。
$ git clone --recurse-submodules https://github.com/Kent-Hu/Test_Submodule.git
Cloning into 'Test_Submodule'...
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 8 (delta 0), reused 8 (delta 0), pack-reused 0
Unpacking objects: 100% (8/8), done.
Submodule 'Sub/Test_Submodule_Sub' (https://github.com/Kent-Hu/Test_Submodule_Sub.git) registered for path 'Sub/Test_Submodule_Sub'
Cloning into 'C:/Users/h144197/Desktop/Test_Submodule/Sub/Test_Submodule_Sub'...
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 0), reused 4 (delta 0), pack-reused 0
Submodule path 'Sub/Test_Submodule_Sub': checked out 'ceebbcc51a03cb1c17eee8adb5c22cf172eb0615'

  

Git 几个常用操作的更多相关文章

  1. git学习 本地常用操作01

    注意: Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动 不要使用Windows自带的记事本编辑任何文本文件 开始git项目: 初始化本地项目: 初始化:g ...

  2. Git安装与常用操作

    Git作为一个版本控制工具,使用前需进行下载安装:可自行到官网下载. 一.安装(windows) 1.双击下载好的文件进行安装,弹窗中点击"next" 2.默认勾选,继续点击&qu ...

  3. Git介绍及常用操作演示(一)--技术流ken

    Git介绍 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发 ...

  4. CI 知识 :Git介绍及常用操作

    Git介绍 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发 ...

  5. git工作中常用操作总结

    这篇文章主要记录下工作中常用的git操作.主要是对之前文章记录的问题做个总结,这个其实在idea中操作更加简单 别名配置 在敲git 命令时,其实可以使用别名,比如 commit可以配置为ci 下面是 ...

  6. Git与GitHub常用操作

    --------------------------基本操作--------------------------clone 拷贝远程仓库commit 本地提交push 远程提交pull 更新本地--- ...

  7. git入门(4)团队中git保管代码常用操作

    在团队中协作代码时候,一定要熟练使用以下git命令,不至于把代码库弄乱, PS:一定要提交自己代码(git push)时候,先进行更新本地代码库(git pull),不然提交异常 git常用命令 1· ...

  8. git基础之常用操作

    一.版本提交: (1)git add 文件名 (2)git commit -m "版本提交信息" 注:git分两个区:工作区+版本库 在电脑中看到的文件夹就是工作区 有一个隐藏的. ...

  9. git最基础常用操作

    单人开发托管够用 未列出的用到一个补一个

  10. git命令行常用操作总结

    关于 更多使用细节(grammar和book),请参考 官网 1.上传代码 1.1 创建自己的远程Repository, github或者gitee 1.2 创建本地git仓库 $ git init ...

随机推荐

  1. Linux常用shell命令

    1.>>>>>刚安装好的ubuntu需要为root创建密码[解决]passwd root 2.>>>>>安装完ubuntu后需要更新[解决] ...

  2. python 多进程多线程的对比

    link:http://www.cnblogs.com/whatisfantasy/p/6440585.html mark一下,挺详细

  3. ubuntu 16.04 安装 opencv +contrib (3.2.0) + python 3.5

    环境: - ubuntu 16.04 - OpenCV + contrib 3.2.0 (文中附下载链接) - Python 3.5 基于其他环境的配置应该大同小异. 没时间解释了,直接上车. 更新下 ...

  4. equals方法中变量在前和在后的区别

    对于变量:String str1; 使用str1.equals("null"); 对于变量str1,如果str1是null,空是没有equals方法的,会抛出空指针异常 使用&qu ...

  5. log4j的简介和使用

    一.log4j是什么 引用官网的介绍 Log4j is a fast and flexible framework for logging application debugging messages ...

  6. ATOM:亮瞎程序员双眼的编辑器插件横空出世

    Atom 编辑器有一个叫 activate-power-mode,啥玩意?看下面的动图吧,非常有 Power ,有木有!!!自带眩晕特技,有木有!

  7. poj1002总结

    1.之前一直是runtime error,没有找出具体原因,把冒牌排序改成了合并排序,当输入是100000行时,从大约10s变到1s内 2.感觉是atoi指针导致的,当判断atoi的入参不为NULL时 ...

  8. 异构去堆叠 | 一种完美提升网络高可用SLA的方案

    行业内接入网络去堆叠已经逐步成为主流方向,在大型互联网公司也已经批量部署.但由于京东集团不同的业务需求及历史原因,没有条件完全复制目前主流的ARP转主机路由方式的去堆叠方案,这促使我们设计一种尽可能满 ...

  9. [面经]杭州某初创公司FPGA工程师实习

    面试时间:2017年8月17日 面试时长:约1小时 面试形式:面对面 面试公司:杭州某初创公司,致力于开发VR相关产品 面试职位:FPGA工程师(实习) 面试官:公司现任FPGA开发工程师,双控硕士毕 ...

  10. 通过配置文件添加MIME类型

    在web.config配置文件中的configuration节点下添加如下节点: <system.webServer> <staticContent> <mimeMap ...