Git常用的命令有以下6个:fetch/clone命令,add命令,commit命令,checkout命令,push命令,pull命令。
- workspace:工作区
- staging area:暂存区
- loacl repository:本地仓库
- remote repository:远程仓库
git fetch
:从远程获取代码库。git clone
:拷贝一份远程仓库,也就是下载一个项目。git add
:添加文件到暂存区。git commit
:提交暂存区到本地仓库。git checkout
:切换分支。git push
:上传远程代码并合并。git pull
:下载远程代码并合并。补充:git clone , git fetch , git pull
- git clone:拷贝一份远程仓库,包括clone仓库的版本变化.
- git fetch:是从远程获取最新版本到本地,不会自动merge.
- git pull:是从远程获取最新版本并merge到本地仓库.
- 从安全角度出发,git fetch比git pull更安全,因为我们可以先比较本地与远程的区别后,选择性的合并。
git branch (branchname)
: 创建分支,当没有参数时,git branch
会列出你在本地的分支。git checkout (branchname)
: 切换分支。git checkout -b (branchname)
: 创建新分支并立即切换到该分支下。git branch -d (branchname)
: 删除分支。git merge
: 合并分支。git merge (branchname)
将branchname分支合并到当前分支中去。补充:git merge 与 git rebase
Git Merge 和 Git Rebase 命令用于将多个开发人员的工作合并到一个代码中。这两个命令的最终目标是相同的,但它们的用法不同。
git merge
:合并git分支,分支上的提交日志是完整的。
- 优点:
- 日志非常详尽,有助于了解每次合并发生的方式和时间的完整历史。
- 很容易发现错误并解决它们。
- 缺点:
- 导致笨拙的日志/历史。
- 不是很人性化。
git rebase
:将更改从一个分支集成到另一个分支,合并后修改了日志,克服合并的局限性,使存储库历史记录的日志看起来是线性的。
- 优点:
- 日志是线性的
- 在项目中移动很容易。
- 缺点:
- 我们无法跟踪提交在目标分支上合并的时间和方式
使用场景:
- 当我们希望以一种可以识别每个提交来自何处的方式理解日志时,我们会使用 git merge。
- 当存储库的日志不会被其他任何人引用时,我们使用 Git Rebase。