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选项。
  1. $ git clone --recurse-submodules https://github.com/Kent-Hu/Test_Submodule.git
  2. Cloning into 'Test_Submodule'...
  3. remote: Counting objects: 8, done.
  4. remote: Compressing objects: 100% (7/7), done.
  5. remote: Total 8 (delta 0), reused 8 (delta 0), pack-reused 0
  6. Unpacking objects: 100% (8/8), done.
  7. Submodule 'Sub/Test_Submodule_Sub' (https://github.com/Kent-Hu/Test_Submodule_Sub.git) registered for path 'Sub/Test_Submodule_Sub'
  8. Cloning into 'C:/Users/h144197/Desktop/Test_Submodule/Sub/Test_Submodule_Sub'...
  9. remote: Counting objects: 4, done.
  10. remote: Compressing objects: 100% (4/4), done.
  11. remote: Total 4 (delta 0), reused 4 (delta 0), pack-reused 0
  12. 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. 浅析HashMap的实现原理

    本文参照https://www.cnblogs.com/chengxiao/p/6059914.html#commentform作者的文章,并分享一些自己的体会. 本文将主要回答以下两个问题: 1. ...

  2. Linux系统的磁盘管理

    Linux系统的磁盘管理有三个命令:df.du.fdisk. df:列出Linux中所有文件系统的整体磁盘使用量: du:对文件和目录所占用磁盘空间的查看: fdisk:用于磁盘分区时列出所有的磁盘. ...

  3. C++中的字符串的输入输出函数、空字符与空格的区别、字符变量赋值和字符串初始化

      一.字符串输入输出函数 1.  cin.get()   逐个字符输入输出 2.  cin 可以将整个字符串一次性输入,但是,cin将空格.Tab和回车键,因此不能用于数组的一次性输入. 注意:ci ...

  4. 关于org.apache.jasper.JasperException解决方法

    没有导入jstl.jar包 解决办法:在项目pom.xml中添加maven项目的jstl.jar 如果导入jstl.jar包 解决办法:检查jstl.jar版本是否与项目兼容,不兼容则切换jstl.j ...

  5. PAT A1046 Shortest Distance

    PAT A1046 Shortest Distance 标签(空格分隔): PAT TIPS: 最后一个数据点可能会超时 #include <cstdio> #include <al ...

  6. Problem B: STL——集合运算

    Description 集合的运算就是用给定的集合去指定新的集合.设A和B是集合,则它们的并差交补集分别定义如下: A∪B={x|x∈A∨x∈B} A∩B={x|x∈A∧x∈B} A-B={x|x∈A ...

  7. Python Day2 Learning record

    一.python初始化模块                                                        Python的强大之处在于他有非常丰富和强大的标准库和第三方库 ...

  8. LAD 线性判别分析

    线性判别分析,简称LDA,是一种线性学习方法. 常用来降维,是一种有监督的降维方法,是基于最佳分类效果的降维方法. 核心思想 给定训练样本,带label,设法将样本投影到一条直线上,使得同类样例的投影 ...

  9. 语言模型(N-Gram)

    问题描述:由于公司业务产品中,需要用户自己填写公司名称,而这个公司名称存在大量的乱填现象,因此需要对其做一些归一化的问题.在这基础上,能延伸出一个预测用户填写的公司名是否有效的模型出来. 目标:问题提 ...

  10. day 21 内存管理,正则

    一.内存管理 1.垃圾回收 不能被程序访问到的数据,就称之为垃圾. 2.引用计数 引用计数是用来记录值得内存地址被记录的次数 每一次对值地址的引用都可以使得该值的引用计数+1 每一次对值地址的释放都可 ...