Skip to content

常用命令

配置工具

bash
# 全局配置用户名
git config --global user.name "[name]"

# 全局配置邮箱地址
git config --global user.email "[email address]"

# 启用有帮助的彩色命令行输出
git config --global color.ui auto

创建仓库

bash
# 在本地创建一个新仓库
git init

# 添加远程仓库
git remote add origin [远程仓库Git地址]

# 克隆远程仓库到本地,包括所有的文件、分支和提交
git clone [远程仓库Git地址]

分支管理

分支是使用 Git 工作的一个重要部分,你做的任何提交都会发生在当前 "checked out" 到的分支上。使用 git status 查看那是哪个分支。

bash
# 创建一个新分支
git branch [branch-name]

# 切换到指定分支并更新工作目录
git checkout [branch-name]

# 将指定分支的历史合并到当前分支
git merge [branch]

# 删除指定分支
git branch -d [branch-name]

进行更改

bash
# 列出当前分支的版本历史
git log

# 列出文件的版本历史,包括重命名
git log --follow [file]

# 展示两个分支之间的内容差异
git diff [first-branch]...[second-branch]

# 输出指定commit的元数据和内容变化
git show [commit]

# 将文件进行快照处理用于版本控制
git add [file]

# 将文件快照永久地记录在版本历史中
git commit -m "[descriptive message]"

重做提交

bash
# 撤销所有 [commit] 后的的提交,在本地保存更改
git reset [commit]

# 放弃所有历史,改回指定提交
git reset --hard [commit]

同步更改

bash
# 下载远端跟踪分支的所有历史
git fetch

# 将远端跟踪分支合并到当前本地分支
git merge

# 将所有本地分支提交上传到 GitHub/GitLab
git push

# 使用来自 GitHub/GitLab 的对应远端分支的所有新提交更新你当前的本地工作分支
git pull

使用 git pull 相当于 git fetchgit merge 的组合。

忽略文件

有时一些文件最好不要用 Git 跟踪,这通常在名为 .gitignore 的特殊文件中完成。你可以在 github.com/github/gitignore (opens new window)找到有用的 .gitignore 文件模板。

.DS_Store

# 依赖目录
node_modules

# 构建文件
.vuepress/dist
/dist

# 包管理器日志文件
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

# 本地环境变量文件
.env.local
.env.*.local

# 编辑器目录和文件
.idea
.vscode
.history
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

术语定义

  • git: 一个开源的分布式版本控制系统
  • GitHub/GitLab: 一个托管和协作管理 Git 仓库的平台
  • commit 提交: 一个 Git 对象,是你整个仓库的快照的哈希值
  • branch 分支: 一个轻型可移动的 commit 指针
  • clone 克隆: 一个仓库的本地版本,包含所有提交和分支
  • remote 远端: 一个 GitHub/GitLab 上的公共仓库,所有小组成员通过它来交换修改
  • fork 复刻: 一个属于另一用户的 GitHub/GitLab 上的仓库的副本
  • pull request 拉取请求: 一处用于比较和讨论分支上引入的差异,且具有评审、评论、集成测试等功能的地方
  • HEAD: 代表你当前的工作目录。使用 git checkout 可移动 HEAD 指针到不同的分支、标记或提交