Git常用命令解说(从创建到提交)

el/2024/7/24 2:34:54

 

Git库中由三部分组成 
       Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实现文档的版本控制。.git目录位于工作目录内。 
1)工作目录:用户本地的目录; 
2) Index(索引):将工作目录下所有文件(包含子目录)生成快照,存放到一个临时的存储区域,Git 称该区域为索引。 

 

3)仓库:将索引通过commit命令提交至仓库中,每一次提交都意味着版本在进行一次更新。

1、git 三种状态
     已提交(committed)
     已修改(modified)
     已暂存(staged)

2、获取项目的 git 仓库
     git init       //从当前目录初始化
     git clone  地址     //从现有仓库克隆

3、配置 git 仓库相关信息
     git config user.name "hehe"
     git config user.email   1085813590@qq.com
      .......
4、检查当前文件状态
     git status
5、跟踪新文件
    git add  <filename>
    gir add --all     //一次性跟踪当前目录全部文件


    注:可以创建一个名为.gitignore 的文件,列出要忽略的文件模式,

例如:
     
# 此为注释 – 将被 git 忽略
      *.a
      !lib.a
       # 忽略所有 .a 结尾的文件
       # 但 lib.a 除外

        /TODO 

       # 仅仅忽略项目根目录下的 TODO 文件, 不包括 subdir/TODO
        build/ 

       # 忽略 build/ 目录下的所有文件
        doc/*.txt 

       # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

 

6、移除文件
       git rm <filename>    //移除暂存区的内容而且工作目录也连带删除
       注:如果仅仅想删除暂存区可以加上 — cached 选项

7、提交
      先用 git diff --color 查看确认修改
      git commit -a -m “comment” //comment 代表此次修改的注释
      git commit --amend //修改最后一次提交
      如果忘记暂存某些文件就提交了,可以暂存后使用 amend 再次提交
      注:加上-a 表示把已经修改的文件全部提交,省去暂存的步骤


8、查看提交历史
       git log
        -p   //展开显示每次提交的差异
        -n   //仅仅显示最近的 n 次提交
       --stat   //仅显示每次修改的概要信息

9、对比操作
       git diff //显示还没有暂存起来的改动
       git diff --cached //已经暂存起来的文件和上次提交时的快照之间的差异
       git diff HEAD //查看当前工作目录和已经提交的差别
       git diff --stat //查看文件改动的大概信息

 

10、补丁操作
       生成补丁方式 1
       git diff > 补丁名称
        git apply 补丁名称
        生成补丁方式 2
        git format-patch HEAD~
        patch -p1 < 补丁名称
        git am 补丁名称
        注:对于 git diff 生成的 patch,你可以用 git apply --check 查看补丁是否能够干净顺利地应用到当前分支中,生成的 Patch 兼容性强。


11、恢复命令 reset
        git reset HEAD <file> //取消已经暂存的文件
        git reset --mixed commit //默认方式,它回退到某个版本,只保留源码,回退
         commit 和 index 信息(git diff 可以查看到修改内容)
         git reset --soft commit       //回退到某个版本,只回退了 commit 的信息,如果还要提交,直接 commit 即可(git diff --cached 可以查看到修改内容)
         git reset --hard commit    //彻底回退到某个版本,源码也回退


12、分支操作
         查看分支 git branch(本地) git branch -a(全部)
         创建分支 git branch testing
          切换分支 git checkout testing
          重命名 git branch -m <old_branch_name> <new_branch_name>
          新建分支并切换
          git checkout -b <branch_name>
          git checkout -b <branch_name> origin/branch
          合并分支 git merge 待合并分支 需要合并分支
          删除以前的分支 git branch -d iss53
         // 强制删除 -D
         git branch 查看当前的分支--v 、 --merge 、 — no-merge 选项可以使用


13、远程仓库操作
         查看远程仓库 git remote(简单查看)
      
  添加远程仓库 git remote add  <名称>  gitosis@192.168.2.4:soul/soul-1
        重命名远程仓库 git remote rename <old_name> <new_name>
        将远程分支更新到本地
         git remote -v(详细查看)
         git fetch //不会 merge
        git pull //直接 merge 到本地
        推送到远程分支 git push 远程仓库名 分支名
        推送本地所有分支 git push --all(默认 origin)
        删除远程分支 git push origin :<分支名>3
           git push --all <仓库名>

 


http://www.ngui.cc/el/5557311.html

相关文章

git 创建 .gitignore 文件 建立项目过滤规则

创建 .gitignore 随意设置想跟踪哪些文件和不跟踪哪些文件. 1.在项目根目录下建立 .gitignore 文件 2. .gitignore文件过滤有两种模式&#xff0c;开放模式和保守模式 2.1开放模式负责设置过滤哪些文件和文件夹 eg&#xff1a; 过滤文件夹设置&#xff1a; /mtk/ 过滤文件设…

使用eclipse 添加user library

在Eclipse中有两种常用的添加引用的jar包的方法&#xff0c;一个就是添加Referenced Library&#xff0c;这种方式很简单&#xff0c;出选中项目右键->import之外&#xff0c;还可以直接向WebRoot->WEB-INF->lib中复制粘贴jar包文件&#xff0c;缺点是下次添加同样的j…

java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Tim

分析&#xff1a;loginTime的时间有误。改成如图所示的时间格式&#xff0c;而不能为 0000-00-00 00:00:00

hibernate 泛型 DAO

Data Access Object (DAO) 是一般的J2EE项目中的一个常见的模块&#xff0c;在我们用一般的方法去实现DAO的过程中会发现在为每个pojo实现DAO的的时候会不断地区重复的写一些常用的方法&#xff0c;如update(),delete(),find()等。 为了解决以上所述的缺点&#xff…

java判断list不为null,又要判断size>0

List listnew ArrayList();这样的list不为null&#xff0c;但是size0,这样的集合对于之后的判断是没用的&#xff0c;甚至是报异常&#xff0c;如list.get(0.....n)这样的取值判断&#xff0c;就会报异常。 所以判断时候往往要双重判断。即list!null && list.size()>…

[com.sun.istack.SAXException2: 在对象图中检测到循环。这将产生无限深的 XML:

-----解决方案-------------------- 序列化对象时检测到循环引用 -------------------- 提示已经非常详细了&#xff0c;就是说你的对象之间有互相引用到&#xff0c;比如A&#xff0c;B类&#xff0c; A中有个成员是B的实例&#xff0c;B中有个成员是A的实例。 自己去看自己的…

正则表达式 学习手册 一

1. 引言 正则表达式&#xff08;regular expression&#xff09;描述了一种字符串匹配的模式&#xff0c;可以用来&#xff1a; &#xff08;1&#xff09;检查一个串中是否含有符合某个规则的子串&#xff0c;并且可以得到这个子串&#xff1b; &#xff08;2&#xff09;根…

JSP页面中Session对象详解

Session:当用户打开浏览器&#xff0c;访问某个网站时&#xff0c;服务器就会在服务器的内存为该浏览器分配一个空间&#xff0c;空间被这个浏览器独占。 这个Session:当用户打开浏览器&#xff0c;访问某个网站时&#xff0c;服务器就会在服务器的内存为该浏览器分配一个空间&…

java 空字符串与null区别

" "分配了内存 &#xff1b;null没有分配内存&#xff0c;只进行了声明。 调用null的字符串的方法会抛空指针异常。 ""是一个字符串(String)。它在内存中是存在的。它可以使用Object对象中的方法&#xff08;如"".toString()&#xff1b;"&…

C++ vector用法和结构体排序

在c中&#xff0c;vector是一个十分有用的容器&#xff0c;下面对这个容器做一下总结。 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象&#xff0c;vector<int> vec; (3)尾部插入数字&#xff1a;vec.push_back(a); (4)使用下标访问元素&#xff…