图解 git 三种状态

-1、书籍推荐

中文版:《 精通 Git 》(第2版)
英文版:《 Pro Git 》Second Edition

0、安装 git

Windows 上安装 git
一种方法是 git 官方版本下载地址 下载如下安装包:

安装之后会有好几个可执行程序 Git BashGit CMDGit GUI,其中唯一堪大用的仅为 Git Bash,用法和 Ubuntu 的 bash 一模一样

还有一种方法是下载 GitHub for Windows,这是客户端版的 GitHub。目前还没用到。

Ubuntu 上安装 git
很简单的一行命令就搞定:

sudo  apt-get  install  git

1、查看 git 配置

git config --list

diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=D:/software/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.helper=manager-core
credential.https://dev.azure.com.usehttppath=true
init.defaultbranch=master
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
user.name=Yachao Jia             //提交必备1/2
user.email=123456789@qq.com      //提交必备2/2
core.editor=nano                 //配置默认编辑器
usr.name=Yachao Jia              //配置用户名的时候敲错了user,还不知道怎么删除误写的配置
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true

2、配置 git 默认编辑器、用户名、邮箱

git  config  --global  core.editor  nano             //将默认编辑器设置为nano
git  config  --global  user.name  "Yachao Jia"       //配置提交用户名
git  config  --global  user.email  123456789@qq.com  //配置提交邮箱

3、查看 git 某一项配置

git  config  core.editor    //查看编辑器
nano

git  config  user.name      //查看用户名
Yachao Jia

git  config  user.email     //查看用户邮箱
123456789@qq.com

4、新建一个 git 仓库

①新建一个文件夹,给文件夹起上合适的名字
②进入该文件夹执行如下命令:

git  init       //有点类似 ROS 初始化工作空间,会在当前目录生成一个 .git 的隐藏文
                //件夹,有 .git 文件夹就说明了本工作空间是一个 “git工程” 的文件夹

5、克隆现有的 git 仓库

git  clone  [URL]                                             //克隆的命令行格式
git  clone  https://github.com/libgit2/libgit2                //这行笔者这里会报 time out 的错误
git  clone  https://gitclone.com/github.com/libgit2/libgit2   //解决上一行访问gitHub出 time out 的问题

感谢这位网友分享的解决办法:Wang CVer

6、暂存(staged)

git  add  test.cpp   

git add命令接受一个文件或目录的路径名作为参数,注意这里的重点是一个。如果提供的参数是目录,该命令会递归地添加该目录下的所有文件。

7、提交(commit)

git commit 

git commit命令后不必须接文件名,不接文件名默认提交整个暂存区(文件已暂存 staged)中的内容,接了文件名则只提交相应的文件。如果嫌一个一个的git add麻烦,也可以使用git commit 的选项参数-a来跳过git add过程:

git commit -a

8、 git 三状态详解

git commit -a提交的是已暂存、未暂存但已跟踪(只能是“已修改待暂存”的文件了)的文件。未跟踪的文件并不能被提交,必须使用git add file_name来使文件从未跟踪变成已跟踪。文件状态树如下:

《Pro Git 第2版》一书中提到 “Git 有三种状态,你的文件可能处于其中之一” ,这三种状态是限定在下述“已跟踪”的前提下的

已跟踪
已提交(committed)
已暂存待提交(staged)
已修改待暂存(modified) (或可跳过暂存强行提交)
未跟踪
在工作路径下新建、粘贴一个文件

在这里插入图片描述

9、删除文件

使用rm 删除"已跟踪"的文件,会使文件状态变为"已删除待暂存"。

处理“已删除待暂存”的文件与处理“已修改待暂存”的文件完全一样,可以先git add file_name,然后再git commit。也可以直接git commit -a强制提交修改。因为“删除文件”也是一种修改嘛,所以这种修改也能够且应该被提交。

使用rm 删除"未跟踪"的文件,不会对git工作空间产生影响,因为这个文件全程对git不可见。

使用git rm file_name删除 git 仓库中的文件。

文件状态会变为“已删除待提交”,即直接放进了暂存区。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值