当前位置:   article > 正文

git使用总结_git查看全局配置

git查看全局配置

概念

1.Git的四个组成部分

2.文件的几个状态

按大类划分,分为两种状态:Tracked(已跟踪)和Untracked(未跟踪),
依据是:该文件是否已加入版本控制

流程简述:

假设某个项目已加入版本控制系统

  1. 新建一个文件,该文件处于 Untracked 状态;
  2. 通过git add命令添加到缓存区,此时文件处于Tracked状态。又或者说
    此时这个文件已经被版本控制系统所跟踪,而且他处于Staged(暂存)状态;
  3. 通过git commit命令把暂存区的文件提交提交到本地仓库,此时文件
    处于Unmodified(未修改)状态;
  4. 此时如果去编辑这个文件,文件又会变成Modified(修改)状态;

本地操作命令

1.相关配置【git config】

区分global 和 local,前者代表 全局设置,就是设置了在整个系统中,所有的带Git版本管理的项目都是这样的配置;后者代表 本地设置即在某个项目中独立的设置,后者优先级高于前者。比如全局设置的用户名是"Coder-pig",本地设置的是"Jay",commit的时候author就是Jay而不是Coder-pig。除了通过命令行修改,还可以直接修改

全局配置文件:etc/gitconfig (Mac下是隐藏文件,用户/.gitconfig)
本地配置文件:当前仓库/.git/config

  1. // 安装完Git后第一件要做的事,设置用户信息(global可换成local在单独项目生效):
  2. git config --global user.name "用户名" // 设置用户名
  3. git config --global user.email "用户邮箱" // 设置邮箱
  4. git config --global user.name // 查看用户名是否配置成功
  5. git config --global user.email // 查看邮箱是否配置
  6. // 其他查看配置相关
  7. git config --global --list // 查看全局设置相关参数列表
  8. git config --local --list // 查看本地设置相关参数列表
  9. git config --system --list // 查看系统配置参数列表
  10. git config --list // 查看所有Git的配置(全局+本地+系统)

2.添加文件到暂存区/文件跟踪标记【git add】

可以使用git add 文件名,将工作空间的文件添加到暂存区,或批量添加文件

  1. git add 文件名 // 将工作区的某个文件添加到暂存区
  2. git add . // 将当前工作区的所有文件都加入暂存区
  3. git add -u // 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件
  4. git add -A // 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件
  5. git add -i // 进入交互界面模式,按需添加文件到缓存区

3.将暂存区内容提交到本地仓库【git commit】

  1. git commit -m "提交说明" // 将暂存区内容提交到本地仓库
  2. git commit -a -m "提交说明" // 跳过缓存区操作,直接把工作区内容提交到本地仓库

4.查看工作区与缓存区的状态【git status】

  1. git status // 查看工作区与暂存区的当前情况
  2. git status -s // 让结果以更简短的形式输出

5.差异对比(内容变化)【git diff】

  1. git diff // 工作区与缓存区的差异
  2. git diff 分支名 // 工作区与某分支的差异,远程分支这样写:remotes/origin/分支名
  3. git diff HEAD // 工作区与HEAD指针指向的内容差异
  4. git diff 提交id 文件路径 // 工作区某文件当前版本与历史版本的差异
  5. git diff --stage // 工作区文件与上次提交的差异(1.6 版本前用 --cached)
  6. git diff 版本TAG // 查看从某个版本后都改动内容
  7. git diff 分支A 分支B // 比较从分支A和分支B的差异(也支持比较两个TAG)
  8. git diff 分支A...分支B // 比较两分支在分开后各自的改动
  9. // 另外:如果只想统计哪些文件被改动,多少行被改动,可以添加 --stat 参数

6.查看历史提交记录【git log】

  1. git log # 查看所有commit记录(SHA-A校验和,作者名称,邮箱,提交时间,提交说明)
  2. git log -p -次数 # 查看最近多少次的提交记录
  3. git log --stat # 简略显示每次提交的内容更改
  4. git log --name-only # 仅显示已修改的文件清单
  5. git log --name-status # 显示新增,修改,删除的文件清单
  6. git log --oneline # 让提交记录以精简的一行输出
  7. git log –graph –all --online # 图形展示分支的合并历史
  8. git log --author=作者 # 查询作者的提交记录(和grep同时使用要加一个--all--match参数)
  9. git log --grep=过滤信息 # 列出提交信息中包含过滤信息的提交记录
  10. git log -S查询内容 # 和--grep类似,S和查询内容间没有空格
  11. git log fileName # 查看某文件的修改记录,找背锅专用

文件恢复/版本回退

1.Tracked文件从暂存区恢复至工作区【git checkout】

如果在工作区直接删除被Git Tracked的文件,但是还未通过git add添加到暂存区,暂存区中还会存在原来的文件,此时键入:git status,会是这样:

Git告诉你工作区的文件被删除了,你可以 删掉暂存区里的文件或 恢复被删文件

  1. // 删除暂存区中的文件:
  2. git rm 文件名
  3. git commit -m "提交说明"
  4. // 误删恢复文件
  5. git checkout -- 文件名
  6. // 另外注意:git checkout会抛弃当前工作区的更改!!!不可恢复!!!务必小心!!!
  7. // 或者使用git restore <文件名>可实现同样的恢复文件功能
  8. git restore <文件名>

2.修改的文件已提交至暂存区【git reset HEAD】

如果更改后add到了暂存区,想恢复原状,下述指令可以让文件恢复原状:

  1. git reset HEAD 文件名
  2. git checkout 文件名

3.版本回退(已commit)【git reset --hard】

文件已经commit了,想恢复成上次commit的版本或者上上次,有如下3种方法:

  1. git reset HEAD^
    1. git reset HEAD^ // 恢复成上次提交的版本
    2. git reset HEAD^^ // 恢复成上上次提交的版本,^的数量就是后退的步数
  2. git reset HEAD~n
    1. git reset HEAD~1 //恢复成上次提交的版本
    2. git reset HEAD~2 // 恢复成上上次提交的版本,n就是后退的步数
  3. git reset --hard 版本号
    git reset --hard 版本号     // git reflog查看到的SHA1值,取前七位即可,根据版本号回退
    

    reset命令其实就是:重置HEAD指针,让其指向另一个commit
    而这个动作可能会对工作区与缓存区造成影响,举个例子

    • 本来的分支线:- A - B - C (HEAD, master)
    • git reset B后:- A - B (HEAD, master)
      解释:看不到C了,但是他还是存在的,可以通过git reset C版本号找回,前提是
      C没有被Git当做垃圾处理掉(一般是30天)。

    reset三个可选参数解析:

    • –soft:只是改变HEAD指针指向,缓存区和工作区不变;
    • –mixed:修改HEAD指针指向,重置暂存区,工作区不变;
    • –hard:修改HEAD指针指向,重置暂存区和工作区;

    4.查看输入指令记录【git reflog】

    Git会记住你输入的每个Git指令,比如上面的git reset 切换成一个旧的commit,然后git log后发现新提交的记录没了,想切换回新的那次commit,可以先调git reflog 获取新commit的SHA1码,然后git reset 回去。

    git reflog
    

     

    注意:这个指令记录不会永久保存!Git会定时清理用不到的对象!!

    5.撤销某次提交【git revert】

    有时可能我们想撤销某次提交所做的更改,可以使用revert命令

    1. git revert HEAD // 撤销最近的一个提交
    2. git revert 版本号 // 撤销某次commit

    不是真的把提交给撤销了,而是生成一个新的提交来覆盖旧的提交,被撤销的提交和新的提交记录都会保存!!!不信你再调一次revert HEAD 会发现被撤销的更改又变回来了,另外,每次revert后,都需要发起新的commit!简单点说,撤销的只是文件变化,提交记录依旧是存在的!

    6.查看某次提交修改内容【git show】

    git show 提交id     // 查看某次commit的修改内容
    

    7.查看某个分支的版本号【git rev-parse】

    git rev-parse 分支名     // 查看分支commit的版本号,可以写HEAD
    

    8.找回丢失对象的最后一点希望【git fsck】

    因为你的某次误操作导致commit丢失,如果git reflog都找不到,你可以考虑使用git fsck,找到丢失的对象的版本id,然后恢复即可。

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/642529
推荐阅读
相关标签
  

闽ICP备14008679号