Git使用-基础篇总结

作者: FoolishFlyFox | 来源:发表于2017-06-14 00:04 被阅读0次

3个概念

  • 工作区
  • 暂存区
  • 仓库
Git的3个区

git获取帮助

命令格式:git help <verb>

例如,通过 git help commit 可以获得与提交相关的帮助;

git的配置

git config

配置3种参数代表的作用域

  • git config --system : 全系统配置,对所有用户的所有仓库有效,配置信息写在etc/gitconfig中;

  • git config --global : 单用户配置,对当前用户的所有仓库有效,配置信息写在~/.gitconfig中;

  • git config --local : 默认配置方式,--local 可省略,表示本仓库适用,配置信息写在./.git/config中;

配置内容

  • git config user.name xxx : 设置用户名;

  • git config user.email xxx@xx.com : 设置电子邮件;

以上两条必须配置,每次commit时需要;

  • git config core.editor vim : 设置git默认使用的文本编辑器;

  • git config merge.tool kdiff3 : 设置归并发生冲突时,默认使用kdiff3编辑并解决冲突;

查看配置内容

  • git config <key> : 查看指定项目的内容,如git config user.name 查看配置的user.name

  • git config --list : 查看所有的配置信息;

Git 得到一个仓库

初始化一个空的仓库

  • git init : 将当前目录初始化为一个仓库;

  • git init [目录名] : 将指定目录初始化为一个仓库;

从现有仓库中克隆

  • git clone <url> : 从指定的 url 仓库克隆到本地;

Git 文件操作

常用命令

命令 含义
git status 查看仓库文件状态
git add <文件名> 将指定文件加入暂存区, 文件名为 . 时表示当前目录都加入
git commit -m '提交说明' 将暂存区内容提交到仓库
git commit -a -m '提交说明' 直接将工作区的所有修改提交到仓库,不经过暂存区
git rm <文件名> 删除文件,并提交至暂存区
git rm --cache <文件名> 将文件从跟踪名单中删除,而不真的删除文件
git mv file_from file_to 将文件进行重命名并提交至暂存区
git reset HEAD <文件名> 将指定文件从暂存区放回工作区,与git add作用相反
git checkout -- <文件名> 取消指定文件在工作区的修改(不可恢复)
git commit --amend -m '新提交说明' 提交暂存区文件到最近一次提交,并修改该次提交的说明
git commit --amend 提交暂存区文件到最近一次提交,不修改提交说明

设置忽略的文件

在仓库目录下创建.gitignore 文件,其编写方式为:

# 忽略所有 .a 结尾的文件
*.a
# 不忽略文件 lib.a
!lib.a
# 忽略 build/ 目录下的所有文件
build/

说明:

  • # 在.gitconfig中表示注释;
  • 可以使用glob匹配(简化版正则表达)
  • 以反斜杠结尾表示匹配一个目录
  • 要忽略指定模式以外的文件或目录,可以在模式前加上 ! 取反。
  • .gitignore对状态为untracked的文件或目录有效,已经通过git add加入跟踪列表的保持跟踪,除非使用 git rm 进行删除,否则保持跟踪;
  • .gitignore 中若存在两行是冲突的,以后者的定义为主,例如:
# 不忽略文本1.txt
!1.txt
# 忽略所有后缀为txt的文件
*.txt

则若目录下有一个文件名为 1.txt 的文件,git将会忽略该文件;

要养成一开始就设置好 .gitignore 文件的习惯,以免将来误提交这类无用的文件

glob语法

符号 意义
* 匹配0个或多个任意字符
? 匹配0个或1个任意字符
[ ] 匹配中括号中的任意一个字符
[abc]表示匹配a或b或c
[起始符号-终止符号] 例如[0-9]表示匹配0、1、...、9任意一个字符

查看提交历史

  • git log : 查看项目提交的历史,将会列出每次提交详细的SHA-1值,用户,邮件号,提交信息;

  • git log --pretty=oneline : 以单行形式显示项目历史,包含SHA-1值和提交信息;

  • git log --graph : 通过ASCII字符串表示简单图形,显示仓库的分化、衍合,不过比较丑,建议使用下一条命令;

  • gitk : 图形化显示仓库分化衍合,比较美观,能用这个就别将就用git log --graph

总结

所有之前提到的命令汇总如下,供回忆:

  • git help <verb>
  • git config user.name <用户名>
  • git config user.email <电子邮件>
  • git config core.editor <编辑器>
  • git config merge.tool <合并工具>
  • git config <项目名>
  • git config --list
  • git init
  • git init [目录名]
  • git clone <url>
  • git status
  • git add <文件名>
  • git commit -m ‘提交说明’
  • git commit -a -m '提交说明'
  • git rm <文件名>
  • git rm --cache <文件名>
  • git mv file_from file_to
  • git reset HEAD <文件名>
  • git checkout -- <文件名>
  • git commit --amend -m '新提交说明'
  • git commit --amend
  • git log
  • git log --pretty=oneline
  • git log --graph
  • gitk

相关文章

网友评论

    本文标题:Git使用-基础篇总结

    本文链接:https://www.haomeiwen.com/subject/xkgjqxtx.html