Git--->>>2、Git 的命令

11 篇文章 0 订阅
## 2、Git 的命令

命令名称

作用

git config --global user.name 自定义的用户名

设置用户签名

git config --global user.email 自定义用户邮箱

设置用户邮箱

git init

初始化本地库

git status

查看本地库状态

git add 文件名

将文件添加到暂存区

git commit -m 日志信息文件名

提交到本地库

git reflog

查看历史记录

git reset --hard 版本号

版本穿梭

命令能通过 双击Tab 键补全

1、设置用户签名
  • git config --global user.name xxx用户名
  • git config --global user.email xxx邮箱
  • 输入 cat ~/.gitconfig 可以查看已经存在的Git配置,这个文件就在当前系统用户目录下的 .gitconfig 文件里记录着

设置用户名和邮箱只是为了确定当前操作者的身份,在每一个提交版本中都可以看见这个身份信息,确认提交是谁做的,git 不会去验证是否存在这个邮箱,如果不设置就在后面无法提交代码。这里设置的用户名邮箱跟github上登陆的没一点关系。

2、初始化本地库 git init
  • 先创建一个空目录【要提前规划好目录】,然后新打开一个 GitBash 窗口,这样git就创建在那个目录里面了。

  • 输入 git init ,就会提示你当前已经在这个目录下创建了一个空的仓库 当前目录下的 .git 目录,但是这个目录默认隐藏看不见,可以这么做

    请添加图片描述

  • 或者在 GitBash 窗口中使用 linux 命令 ll -a 查看当前目录下所有文件,就能看见 .git 文件夹,也可以 cd /.git 进入目录, 然后 ll 查看目录内的文件。但是看就行了别它而且也能发现Linux 中的命令都能在git里面用,他俩都是一个爹做的

3、查看本地仓库状态 git status
  • 输入 git status 后,会返回一些信息,第一次空的目录里面,有三行内容,第一行是说当前在哪个分支里面,第二行说有没有提交记录,第三行是说目录里面有没有产生文件记录,空的就是没有
  • 然后就能使用 Linux 命令创建一个新的文件 vim hello.txt ,然后在里面写点东西多复制【退出编辑并yy 复制 p粘贴】几行。:wq 退出
  • 然后再输入 git status 就会发现他最后一行就提示你出现了未追踪的文件后面是刚才创建的那个文件名不过冒红【当前文件在工作区】,这个时候他就提示你通过 git add 命令提交文件至暂存区
  • 通过 git add hello.txt 把文件添加到暂存区后,会提示你说【这里是一个警告,狗屁用没有】会用 LF 替换 CRLF 【在安装的时候软件问过】,还会提示你这个文件已经存在工作目录了,再输入 git status 就会出现一个提示说已经在监控这个文件了,而且在 暂存区的文件可以被删除,所以他就提示你用 git rm --cached 文件名 能把这个文件删除了。当然只是在暂存区删除,工作区的文件还存在。
  • 输入 git rm --cached hello.txtgit statusgit add hello.txt 多体验一下变化
4、将暂存区文件提交本地库 git commit -m “日志信息” 文件名
  • 首先 git conmmit -m "first commit" hello.txt 提交本地库。就会返回一些日志报文

    •   通知你一下 CRLF 被替换成 LF 了
        warning: LF will be replaced by CRLF in test.txt.
        这个文件在你的工作目录存在了
        The file will have its original line endings in your working directory
        主分支提交了一个文件,7位字符编码就是提交文件的版本号,后面跟著提交时写的日志信息
        [master (root-commit) 0b1dd9b] first submit
        一个文件变化,十行记录插入
         1 file changed, 10 insertions(+)
         创建了一个多少字节的文件
         create mode 100644 test.txt
      
  • 然后再输入 git status 就会看见一直提示你的没有提交的信息消失了代替的是

    • nothing to commit, working tree clean 说你的工作树是干净的,没东西需要提交了
  • 可以通过 git reflog 查看引用日志信息

    •   0b1dd9b (HEAD -> master) HEAD@{0}: commit (initial): first submit
        这就是之前提交的那个记录的版本号,指针指向 master 分支,最后那个就是第一次提交的版本信息
      
  • 也可以通过 git log 查看详细日志信息

    •   提交的内容的完整版本号,前面那个只是截取了前七位
        commit 0b1dd9b55219863527d66218e7066d94f059a020 (HEAD -> master)
        之前起的用户名和邮箱,还有就是时间日期、提交时的日志信息 
        Author: xyk <xyk@xyk.com>
        Date:   Wed Mar 9 10:04:07 2022 +0800
        
            first submit
      
5、修改文件
  • 先对 hello.txt 文件进行编辑修改 vim hello.txt 随便做点修改

    • 再输入 git status 查看本地仓库状态就会出现一个冒红,说是出现了不受控制的修改,是因为只是在工作区修改了,没有提交到暂存区。你可以通过提交命令或者回撤命令 git restore 放弃修改

    • git add 提交一下,然后再查看状态 git status ,会提示你有提交变换,可以通过撤回命令 git restore 放弃提交的修改

    • git commit -m "日志信息" 文件名 提交至本地仓库,

      •   warning: LF will be replaced by CRLF in test.txt.
          The file will have its original line endings in your working directory
          生成了另一个文件版本号和日志信息
          [master 7d03c47] second commit
          git无法表达修改,所以他会把被修改的那一行删除,把修改的那一行插入。就有一行插入,一行删除的记录
           1 file changed, 1 insertion(+), 1 deletion(-)
        
    • git reflog 查看版本

      •   可以看见指针指向当前版本,第二次提交
          7d03c47 (HEAD -> master) HEAD@{0}: commit: second commit
          0b1dd9b HEAD@{1}: commit (initial): first submit
        
  • git 版本管理是通过 指针 管理,不通过文件副本的方式,所以工作目录中只有一个文件。

6、历史版本切换问题
  • 版本穿梭

    • git reflog 查出文件历史修改信息

    • 使用 git reset --hard 版本号 将版本切换成你想切换回去的版本

    • git reflog 再次查看历史修改信息

    •   $ git reflog
        先是指针指向 7d03c47 这个版本号的修改
        7d03c47 (HEAD -> master) HEAD@{0}: commit: second commit
        0b1dd9b HEAD@{1}: commit (initial): first submit
        
        xyk@xyk MINGW64 /d/git/Git-Space/git-demo (master)
        $ git reset --hard 0b1dd9b
        修改后告诉你 版本号已经指向了 0b1dd9b 
        HEAD is now at 0b1dd9b first submit
        
        xyk@xyk MINGW64 /d/git/Git-Space/git-demo (master)
        $ git reflog
        再次查看就能看见指针已经指向了 0b1dd9b 版本,git还会提示你 指针移动至 0b1dd9b 版本
        0b1dd9b (HEAD -> master) HEAD@{0}: reset: moving to 0b1dd9b
        7d03c47 HEAD@{1}: commit: second commit
        0b1dd9b (HEAD -> master) HEAD@{2}: commit (initial): first submit
      
    • 进入 .git 目录,HEAD 文件就是记录着当前工作在哪一个分支

      • refs -> heads ,里面的 master 文件记录着当前的版本号,如果你做出了版本切换这个版本号也会跟着改变,当前的版本号是:0b1dd9b55219863527d66218e7066d94f059a020 ,前七位就是刚才切换的版本号
    • 同时外面的文件 hello.txt 也会回到之前未修改的内容

    • Git的版本穿梭其实就是控制指针HEAD,选定分支,再控制指向版本号。只是分支指向版本的指针变化,指向那个那个版本就变

总结

写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个关于 java开发 的学习思路及方向。从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。

由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的 点击我的Gitee获取
还有 高级java全套视频教程 java进阶架构师 视频+资料+代码+面试题!

全方面的java进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值