Git常用命令整理

整理 Git 中常见、常用命令提供快速翻阅。

使用 git --version 查看当前版本。

Git 配置

git config --list 命令用来列出所有 Git 当时能找到的配置。
通过输入 git config <key> 来检查 Git 的某一项配置。

设置你的用户名和邮件地址

1
2
git config --global user.name "xugz"
git config --global user.email "xugz_@outlook.com"

git config --global alias.last 'log -1 HEAD' 创建别名。此时我们可以用 git last 命令代替 git log -1 HEAD 来查看最后一次提交。
git config --global core.autocrlf false 设置是否自动转化行结束符。

windows下和linux下的文本文件的换行符不一致。
windows:两个字符,CR+LF,即一个回车,一个换行
linux及OS X:一个字符,LF,在Linux下查看文件会在行末多个^M。
在windows下,git安装时,默认该选项为true,从仓库下载下来,结尾会改为CRLF格式。当提交文件到仓库时,会将CRLF格式转为LF。这样可以保证仓库中的文件是LF结尾的。
windows下开发将编辑器默认设置为LF格式(如VSCode,在settings中设置file:eol 选项为\n),core.autocrlf 该项设置为false最好。

获取 Git 仓库

通常有两种获取 Git 项目仓库的方式:

  1. 将尚未进行版本控制的本地目录转换为 Git 仓库;
  2. 从其它服务器 克隆 一个已存在的 Git 仓库

使用 git init 在已存在的本地目录中初始化仓库。

git clone <url> [rename_dir_name] 命令将指定仓库克隆下来,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。
这会在当前目录下创建 和你指定URL对应仓库名同名 的目录,并在这个目录下初始化一个 .git 文件夹, 从远程仓库拉取下所有数据放入 .git 文件夹,然后从中读取最新版本的文件的拷贝。如果你想在克隆远程仓库的时候,自定义本地仓库的名字,你可以通过额外的参数指定新的目录名。

分支操作

git branch 会列出你在本地的分支。
git branch <branch_name> 使用该命令创建新分支。
git branch -d <branch_name> 删除指定分支。
git branch -v 查看每一个分支的最后一次提交。
git branch --merged 查看哪些分支已经合并到当前分支, git branch --no-merged 查看尚未合并到当前分支的分支。

git checkout <branch_name>切换分支。
git checkout -b <branch_name> 创建新分支并切换。

git stash 命令用来临时地保存一些还没有提交的工作,以便在分支上不需要提交未完成工作就可以清理工作目录。
git stash list 用以查看贮藏的内容。
git stash apply [stash_name] 应用指定贮藏版本,不指定的话默认最新的贮藏。
git stash drop [stash_name] 删除指定贮藏版本。git stash clean 清空所有贮藏版本。

git merge <branch_name> 将指定分支合并到你的当前分支。

查看变更

git status 命令查看文件状态。
-s 选项可以以简洁的方式查看更改。新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。

git diff 能通过文件补丁的格式具体地显示尚未缓存文件的变更对比。
git diff --stagedgit diff --cached 命令查看已暂存的将要添加到下次提交里的内容,这条命令将比对已暂存文件与最后一次提交的文件差异。
git diff HEAD 查看已缓存文件的与未缓存文件的所有改动。
git diff --stat 显示变动摘要。

git log--oneline 选项来查看历史记录的紧凑简洁的版本。
使用 git log --oneline --graph 选项,开启了拓扑图查看历史中什么时候出现了分支、合并。

提交变更

git add <filename/.> 命令添加需要追踪的新文件和待提交的更改。

git checkout <filename>/. 撤销对指定文件/所有变更的修改。

git commit 提交更新。
-m 用于备注提交说明。
-a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤。
--amend 选项用来重新提交。例如,你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作。从效果上来说,就像是旧的提交从未存在过一样,它并不会出现在仓库的历史中。

1
2
3
git commit -m 'initial commit'
git add forgotten_file
git commit --amend

git rm <filename> 从暂存区域移除指定文件。

git reset HEAD/<filename> 取消缓存已缓存的全部内容/指定文件。

git mv file_from file_to 移动/重命名已跟踪的文件。

忽略本地指定文件变更,比如本地配置了开发环境参数,不需要提交
git update-index --assume-unchanged <filename>

当需要提交该文件时,执行 git update-index --no-assume-unchanged <filename> 取消忽略

远程仓库的使用

git remote -v 命令查看已经配置的远程仓库服务器名字及对应URL。
git remote add <shortname> <url> 添加一个新的远程 Git 仓库,同时指定一个方便使用的简写。

git fetch <remote> 从远端仓库获取新分支与数据。

git pull 从远端仓库提取数据并尝试合并到当前分支。

git push [alias] [branch] 推送你的新分支与数据到某个远端仓库。
git push origin --delete <branch_name> 删除指定的远端分支

本文标题:Git常用命令整理

文章作者:xugz

发布时间:2020年03月11日 - 14:51

最后更新:2022年06月05日 - 09:24

原始链接:https://xlline.github.io/2020/03/11/Git-base/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。