Git常用基础命令集合

9 篇文章 0 订阅
7 篇文章 0 订阅

First-Time Git Setup

  • 可以通过以下命令查看所有的配置以及它们所在的文件。
$ git config --list --show-origin
  • 用户信息,安装完 Git 之后设置你的用户名和邮件地址。 这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改。
  • –global 表示配置信息本机所有git仓库有效
  • –local 表示配置信息对该git仓库有效
  • –system 表示系统的配置信息,对所有有效
$ git config --global user.name "Wei Li"
$ git config --global user.email 2694048168@example.com
  • 文本编辑器,配置默认文本编辑器了,当 Git 需要你输入信息时会调用它。 如果未配置,Git 会使用操作系统默认的文本编辑器。如果你想使用不同的文本编辑器,可以配置。
$ git config --global core.editor emacs
# Windows上使用Notepad++
$ git config --global core.editor "'C:/ProgramFiles/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
  • 获取帮助,使用 Git 时需要获取帮助,有三种等价的方法可以找到 Git 命令的综合手册。
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
# 要想获得 git config 命令的手册,执行
$ git help config
# 不需要全面的手册,只需要可用选项的快速参考,那么可以用 -h 选项获得更简明的 “help” 输出:
$ git add -h

Git Basics

  • 在已存在目录中初始化仓库,首先需要进入该项目目录中,然后初始化。
# Linux 上:
$ cd /home/user/my_project
# 在 macOS 上:
$ cd /Users/user/my_project
# 在 Windows 上:
$ cd /c/user/my_project
# 初始化git仓库,会出现隐藏文件夹 .git
$ git init
  • 克隆现有的仓库,当你执行 git clone 命令的时候,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。
# Git 支持多种数据传输协议, http,git,ssh
$ git clone https://github.com/2694048168/MachineLearning
# 更改克隆到本地的仓库名称
$ git clone https://github.com/2694048168/MachineLearning New_MachineLearning
  • 文件的状态变化周期
    文件的状态变化周期

  • 检查当前文件状态

# 可以用 git status 命令查看哪些文件处于什么状态
$ git status
# 状态简览,git status 命令的输出十分详细,但其用语有些繁琐
$ git status -s 
$ git status --short
  • 跟踪新文件
# 使用命令 git add 开始跟踪一个文件
$ git add README
  • 忽略文件,一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。创建 .gitignore的文件,列出要忽略的文件的模式。 GitHub提供一个gitignore 有一个十分详细的针对数十种语言的 .gitignore 文件列表以供参考。
# 文件 .gitignore 的格式规范如下:
• 所有空行或者以 # 开头的行都会被 Git 忽略。
• 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
• 匹配模式可以以(/)开头防止递归。
• 匹配模式可以以(/)结尾指定目录。
• 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。 星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c); 问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。 使用两个星号(**)表示匹配任意中间目录,比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等。
  • 查看已暂存和未暂存的修改,使用 git diff 来分析文件差异。
# 此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,即修改之后还没有暂存起来的变化内容。
$ git diff
# 若要查看已暂存的将要添加到下次提交里的内容,比对已暂存文件与最后一次提交的文件差异。
$ git diff --staged 
  • 提交更新,现在的暂存区已经准备就绪,可以提交了。每一次运行提交操作,都是对你项目作一次快照,以后可以回到这个状态,或者进行比较。
# 默认打开默认编辑器添加提交信息
$ git commit
#  commit 命令后添加 -m 选项,将提交信息与命令放在同一行
$ git commit -m "Story 182: Fix benchmarks for speed"
# 跳过使用暂存区域,给 git commit 加上 -a 选项,Git 跳过 git add 步骤
$ git commit -a -m 'added new benchmarks'
  • 移除文件
# 当文件处于工作区
$ git rm filename
$ git rm -f filename
$ git rm -r directory

# 当文件处于暂缓区
# 把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。
# 换句话说,你想让文件保留在磁盘,但是并不想让 Git 继续跟踪。 当你忘记添加 .gitignore 文件
$ git rm --cached filename
  • 移动文件
$ git mv file_from file_to
# 等价于三条命令
$ mv README.md README
$ git rm README.md
$ git add README
  • 查看提交历史
# 默认 git log 会按时间先后顺序列出所有的提交,最近的更新排在最上面。
# 这个命令会列出每个提交的 SHA-1 校验和、作者的名字和电子邮件地址、提交时间以及提交说明
$ git log

# git log 有许多选项可以帮助你搜寻你所要找的提交
$ git log --pretty=format:"%h %s" --graph
  • 撤消操作
# 重新提交注释
$ git commit --amend

# 取消暂存的文件
$ git reset HEAD CONTRIBUTING.md

# 撤消对文件的修改
$ git checkout -- CONTRIBUTING.md

提交与撤销

  • 远程仓库
# 显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL
$ git remote -v

# 添加远程仓库 
# git remote add <shortname> <url>
$ git remote add origin https://github.com/2694048168/MachineLearning

# 从远程仓库中抓取与拉取
# git fetch 抓取克隆后新推送的所有工作。 
# 必须注意fetch命令只会将数据下载到你的本地仓库,不会自动合并或修改你当前的工作,手动merge合并
$ git fetch <remote>
# 那么可以用 git pull 命令来自动抓取后合并该远程分支到当前分支
$ git pull <remote>

# 推送到远程仓库
# git push <remote> <branch>
$ git push origin master

# 查看某个远程仓库
# git remote show <remote>
$ git remote show origin

# 远程仓库的重命名与移除
# git remote rename 来修改一个远程仓库的简写名
$ git remote rename origin gitee_origin
# git remote remove 或 git remote rm
$ git remote remove gitee_origin
  • 打标签
# 列出标签,只需要输入 git tag (可带上可选的 -l 选项 --list)
$ git tag

# 附注标签
# 在 Git 中创建附注标签十分简单。 最简单的方式是当你在运行 tag 命令时指定 -a 选项:
$ git tag -a v1.4 -m "my version 1.4"

# 共享标签
# git push origin <tagname>
$ git push origin v1.5
# 推荐使用一下命令
$ git push origin --tags

# 删除标签
# 要删除掉你本地仓库上的标签,可以使用命令 git tag -d <tagname>
$ git tag -d v1.4
# 注意上述命令并不会从任何远程仓库中移除这个标签,
# 必须用 git push <remote>:refs/tags/<tagname> 来更新你的远程仓库
$ git push origin :refs/tags/v1.4-lw
# 推荐使用下面命令
$ git push origin --delete <tagname>
  • Git 别名
# 如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名。 
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值