git使用说明-全是干货

本文介绍了Git的核心概念,如分布式版本库、暂存区、工作区,以及Git的基本操作流程,包括注册账号、配置、从GitHub下载资料、gitstatus、gitadd、gitcommit、gitreset、gitdiff、gittag和gitpatch等内容。
摘要由CSDN通过智能技术生成

简述

        Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

        Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

        Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念

相关专业名词

        staged changes:已更改的东西

        unstaged changes:未更改的东西

        stage 暂存区

工作区(Working Directory)

        就是你在电脑里能看到的目录,比如我的dpdk文件夹就是一个工作区:

版本库(Repository)

        工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

        Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

第一步:注册账号

        因为我们会经在GitHub网站上下载资料,又因访问国外的网站,下载较大的文件经常会失败,所以我们要注册一个GitHub账号,同时再去设置ssh文件传输。不配置SSH,GitHub的URL不能下载,大文件传输通过SSH稳定。

        ubuntu系统:apt-get install git

        centos系统:yum install git

第二步:配置git

        在我们使用系统的环境中配置:

        git config --global user.name //配置用户名(github官网注册的用户名)

        git config --global xxxxxx@mail.com   //配置用户邮箱(gitub官网注册绑定的邮箱)

第三步:从github网站下载资料

        git clone

                git clone git://dpdk.org/dpdk

                或者

                git clone DPDK 19.08, Biggest Release of 2019, is Now Available - DPDK

        git config

        查看当前git环境详细配置

                git config -l 

        查看当前用户配置

                配置文件在~/gitconfig

                git config --global --list 

        注:当前是普通用户,若当前在root用户下,可用git config -l和git config --system –list

        查看系统config

                配置文件在git安装目录/etc/gitconfig

                git config --system --list

        查看当前仓库配置信息

                git config --local --list 

        注:一定要在有git管理的目录下去执行查看当前仓库的配置信息

        当前仓库下的目录结构:

git status -s 状态码(精简输出)

        第一列字符表示版本库与暂存区之间的比较状态

        第二列字符表示暂存区与工作区之间的比较状态

        M = 修改 > 文件的内容或者mode被修改了.

        A = 已添加 > 你本地新增的文件(服务器上文件没有新增)

        D = 已删除 > 本地删除的文件(服务器上文件还在).

        R = 重命名 > 文件名被修改

        C = 复制 > 文件的一个拷贝

        U = 已更新但尚未装入 > 文件没有被合并(需要完成合并才能进行提交)

        T = 文件的类型被修改了 > 文件的类型被修改

        ' ' (空格)表示文件未发生更改

        ? 表示未跟踪文件(untracked)。

        ! 表示忽略文件。

        未跟踪和忽略文件会显示相同的两列,如 ??

        根据提示执行:git commit -am “提交最好体现更改了什么***************”

参考:

git status 状态命令——查看文件状态_git status显示所有文件_BenBenF19的博客-CSDN博客

git 使用报错: fatal: Couldn't find remote ref master的解决方法_fatal: couldn't find remote ref develop_base_zs_勋彰的博客-CSDN博客

git add

        git add [file-name1] [file-name2] ... 从工作区添加指定文件到暂存区

        git add .  将工作区的被修改的文件和新增的文件提交到暂存区,不包括被删除的文件

        git add -u . u指update,将工作区的被修改的文件和被删除的文件提交到暂存区,不包括新增的文件

        git add -A . A指all,将工作区被修改、被删除、新增的文件都提交到暂存区

        git status -s 命令查看i40e_flow.c文件被修改了,红色的M表示修改的文件,需要提交到暂存区或直接提交到仓库中。

        根据提示可以去执行git add .或者git commit -a,加了-a,在 commit 的时候,能帮你省一步 git add ,但也只是对修改删除文件有效, 新文件还是要 git add,不然就是 untracked 状态

        git add meta-loongarch/recipes-phosphor/images/obmc-phosphor-image%.bbappend

        git add meta-loongarch/recipes-phosphor/packagegroups/packagegroup-loongarch-apps.bb

        git add  meta-loongson/meta-loongson-la2k500-evb/conf/local.conf.sample

        红色的M表示源文件已经被修改,git add 后颜色有红色变为绿色,表示从工作区添加指定文件到暂存区

git diff

        比较与上版本有什么区别在哪;

        我们执行下git add . ,再去执行下git status -s

git commit

        提交到工作区:"1095 ft2000/6420230621 Initial version"

        查看状态: git status

        查看分支:git branch

        查看log:git log

git log

        查看提交的日志

        使用git log 命令可以查看commit ID,commit ID会比较长,使用时可仅使用前几个字母表示

第四步:自行创建git管理

        创建一个文件夹例如mkdir gittest,进入文件夹cd gittest,执行git init

        现在你可以看到在你的项目中生成了 .git 这个子目录,这就是你的 Git 仓库了,所有有关你的此项目的快照数据都存放在这里。.git 默认是隐藏的,可以用 ls -a 命令查看。

如何创建.gitignore文件,忽略git不必要提交的文件

        1、在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录;

        2、输入 touch .gitignore ,生成“.gitignore”文件;

        3、在”.gitignore” 文件里输入你要忽略的文件夹及其文件就可以了。(注意格式);

总结

git config

        git config -l 查看当前git环境详细配置

        git config --system --list 查看系统config,配置文件在git安装目录/etc/gitconfig

        git config --global --list 查看当前用户配置,配置文件在~/gitconfig

        git config --local --list 查看当前仓库配置信息

编辑git配置文件

        git config -e 针对当前仓库

        git config -e --global 针对系统上所有仓库

git init && clone

        git init  在当前目录新建一个仓库

        git init [project-name]在一个目录下新建本地仓库

        git clone <repo> 从现有的Git仓库中拷贝项目(类似svn checkout)

克隆到指定目录

        git clone <repo> <directory> 参数说明:Gitc仓库 directory  本地目录

        比如,要克隆Ruby语言的Git代码仓库Git,可以用下面的命令:

                git clone git://github.com/schacon/grit.git

        执行该命令后,会在当前目录下创建一个名为grit的目录,其中包含一个.git的目录,用于保存下载下来的所有版本记录。

        如果要自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:

        git clone git://github.com/scharon/grit.git mygrit

git diff 

        git diff HEAD -- ,查看最新本地版本库和工作区所有文件的区别

        git diff HEAD --[file-name] 查看最新本地版本库和工作区文件的却别

        git diff HEAD^ --[file-name] 查看本地上一个版本和工作区文件的却别

        git diff [local branch] origin/[remote branch] 比较本地分支和远程分支的区别

git status

        git status [file-name] 查看指定文件状态

        git status -s          查看所有文件状态

git add

        git add [file-name1] [file-name2] ... 从工作区添加指定文件到暂存区

        git add . 将工作区的被修改的文件和新增的文件提交到暂存区,不包括被删除的文件

        git add -u . u指update,将工作区的被修改的文件和被删除的文件提交到暂存区,不包括新增的文件

        git add -A . A指all,将工作区被修改、被删除、新增的文件都提交到暂存区

git commit

        git commit -m [message] 将暂存区所有文件添加到本地仓库

        git commit [file-name1] [file-name2] -m [message] 将暂存区指定文件添加到本地仓库

        git commit -am [massage] 将工作区的内容直接加入本地仓库

        git commit --amend 快速将当前文件修改合并到最新的commit,不会产生新的commit。在提交commit后发现还有部分文件修改忘记提交了可以是用该命令

        加-m是指直接在后面写上版本的注释,不加-m的话会用一个vim打开文件让你写入massage,有未追踪的文件将会失败,需要add加入暂存区。

git reset 

        git reset命令用于回退版本,可以指定退回某一次提交的版本

        语法格式如下:

            git reset [--soft | --mixed | --hard] [HEAD]

        HEAD 说明:

        HEAD 表示当前版本

        HEAD^ 上一个版本

        HEAD^^ 上上一个版本

        HEAD^^^ 上上上一个版本

以此类推...

        可以使用 ~数字表示

        HEAD~0 表示当前版本

        HEAD~1 上一个版本

        HEAD^2 上上一个版本

        HEAD^3 上上上一个版本

以此类推...

git reset HEAD^            # 回退所有内容到上一个版本 

 git reset HEAD^ hello.c  # 回退 hello.c 文件的版本到上一个版本 

 git  reset  563se           # 回退到指定版本

git reszet 三种模式分别为mixed(默认)、soft、hard

        参考:Git reset 三种模式(hard,soft,mixed)_hard mixed soft_笑会儿的博客-CSDN博客

        可通过git log 查看想要回退到的 commit id

        git reset --mixed是默认的提交撤销方式,也是最常用的一种方式。它可以撤销当前分支上的一个或多个提交,并将这些提交的更改从暂存区中移除,但保留这些更改的文件在你的工作目录中。这意味着你可以编辑和重新提交这些更改。

        git reset --soft是另一种常用的提交撤销方式,它比git reset --mixed更加灵活。与git reset --mixed不同的是,git reset --soft不会更改你的工作目录或暂存区。这意味着你可以保留之前提交的更改,并将它们作为一个新的提交提交到远程代码仓库。

        git reset --hard会彻底删除提交并丢弃所有更改。这意味着你将丢失所有未提交的更改,并且无法还原。

git reset --mixed(默认)

        --mixedw为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。

git reset --soft

git reset –hard

        注意:谨慎使用 –-hard 参数,它会删除回退点之前的所有信息。

创建仓库命令

        git init 初始化仓库

        git clone 拷贝一份远程仓库,也就是下载一个项目

提交与修改

        git add  添加文件到暂存区

        git status 查看仓库当前的状态,显示有变更的文件

        git diff 比较文件的不同,即暂存区和工作区的差异

        git commit 提交暂存区到本地仓库

        git reset 回退版本

        git rm 将文件从暂存区和工作区中删除

        git mv 移动或重名工作区文件

提交日志

        git log 查看历史提交记录

        git blame <file> 以列表式查看指定文件的历史修改记录

远程操作

        git remote 远程仓库操作

        git fetch 从远程获取代码库

        git pull 下载远程代码并合并

        git push 上传远程代码并合并

分支管理

        git branch (branchname)创建分支命令

        git branch 列出分支,没有参数时,git branch 会列出你在本地的分支

        git branch -d (branchname)  删除分支命令

        git checkout (branchname) 切换分支命令

        git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下,从而在该分支中操作

         git merge 合并分支命令 

查看提交历史

        git log 查看历史提交记录

        git blame <file> 以列表形式查看指定文件的历史修改记录

git tag 打标签 

        达到一个重要的阶段,并希望永远记住那个特别的提交快照,,你可以git tag给它打上标签

打patch

        patch 指令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是linux系统核心的升级方法之一。

        推荐大家使用git的format-patch和am命令进行生成patch和打patch,用此方法获得的patch其实就是commit里提交的code修改以及commit信息

方法一:

        git diff > test.patch        生成patch

        git diff 文件名 > test.patch    指定某个文件的修改打patch可以使用

        git diff --cached >  test.patch 已经执行git add 在想打patch可以使用

        git apply --check test.patch    查看patch

        git apply test.patch         使用patch

        对已经提交的代码打patch ,git log 查看那些是需要打ptach的

方法二:

操作步骤:

  1. 首先通过git log 查看有那些commit ID,一共提交了多少次
  2. 例如一共提交4次,commit A、commit B、commit C、commit D;把第一次或者其他次提交的(不包括第一次提交)都生成patch

git format-patch ID(commit A)

后会生成patch文件,例如00001.patch

  1. 在使用git am之前,你要首先git am –abort 一次,来放弃掉以前的am信息。才可以进行一次全新的am
  2. 先检查patch文件:git apply –stat 00001.patch
  3. 检查能否应用成功:git apply –check 00001.patch
  4. 打补丁:git am –signoff < 00001.patch

(使用-s或—signoff选项,可以coomit 信息中加入Signed-off-by信息)

其他用法

        git format-patch                打ptach 这个使用于 已经提交的代码

        git format-patch commit_id1 commit_id2 生成patch

        git apply --check               系统生成的名字  查看patch

        git am 系统生成的名字.patch          应用patch

        git format-patch HEAD^            生成最近的1次commit的patch

        git format-patch HEAD^^           生成最近的2次commit的patch

  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大犇犇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值