git介绍
Git是一个分布式版本控制系统,最初由Linus Torvalds于2005年创建。它被广泛用于软件开发中,以协调多个开发者之间的代码修改和版本控制。Git可以跟踪文件的修改历史,可以轻松地查看和恢复之前的版本。它还支持分支和合并,使得多个开发者可以独立地工作并在最终将其代码合并到一起。Git的优点包括速度快、可靠性高、支持分布式开发、易于使用等。
项目中使用
代码语言:javascript复制mkdir projectdemo
cd projectdemo
git init执行git init命令后,Git会在当前目录下创建一个名为.git的子目录,这个子目录是Git的版本库,它包含了Git用于管理版本控制的所有信息和元数据。
.git目录的结构如下:
.git/
├── HEAD
├── config
├── description
├── hooks/
│ ├── applypatch-msg.sample
│ ├── commit-msg.sample
│ ├── fsmonitor-watchman.sample
│ ├── post-update.sample
│ ├── pre-applypatch.sample
│ ├── pre-commit.sample
│ ├── pre-merge-commit.sample
│ ├── pre-push.sample
│ ├── pre-rebase.sample
│ ├── pre-receive.sample
│ ├── prepare-commit-msg.sample
│ └── update.sample
├── info/
│ └── exclude
├── objects/
│ ├── info/
│ └── pack/
└── refs/
├── heads/
└── tags/HEAD文件指向当前分支的最新提交config文件包含了Git的配置信息hooks目录包含了Git的钩子脚本info目录包含了一些Git的辅助信息objects目录包含了Git的对象库refs目录包含了Git的引用信息
使用git
项目中使用Git的基本步骤:
- 在项目根目录下执行
git init命令,创建Git的版本库。 - 在项目中添加要进行版本控制的文件,可以使用
git add命令将文件添加到Git的暂存区,也可以使用git commit -a命令将所有已修改的文件添加到暂存区并提交到Git的版本库。 - 在代码修改完成后,使用
git commit命令将代码提交到Git的版本库中,同时添加提交信息以便后续查看。 - 在需要协作开发的情况下,可以使用
git clone命令将远程仓库中的代码克隆到本地,然后进行修改和提交。 - 在代码修改过程中,可以使用
git branch命令创建新的分支,使用git checkout命令切换不同的分支,使用git merge命令将分支合并到主分支中。 - 在需要与远程仓库同步代码时,可以使用
git pull命令将远程仓库中的代码拉取到本地,也可以使用git push命令将本地代码推送到远程仓库中
使用常见场景
本地切换远程分支
要将本地分支切换到远程分支,使用git checkout命令,并指定远程分支的名称。
git checkout -b <local-branch-name> origin/<remote-branch-name>其中 <local-branch-name> 是要创建的新本地分支的名称,<remote-branch-name> 是远程分支的名称。如果只想查看远程分支而不创建本地分支,则可以省略 -b 参数:
git checkout origin/<remote-branch-name>合并远程仓库的更新部分
要将远程存储库的更新部分合并到本地分支中,使用git pull命令。git pull命令会从远程存储库中获取最新的更改,并将其合并到当前分支中。
以下是使用git pull命令从远程存储库中获取更新的步骤:
- 确定当前所在的分支。可以使用
git branch命令查看当前分支。 - 使用
git pull命令从远程存储库中获取最新的更改并将其合并到当前分支中:
git pull <remote> <branch>其中 <remote> 是远程存储库的名称,<branch> 是要合并的远程分支的名称。例如,如果要从名为origin的远程存储库的master分支中获取更新,则可以运行以下命令:
git pull origin master- 如果有任何冲突,则需要解决它们并提交更改。可以使用
git status命令查看有关冲突的更多信息。
合并更新可能会导致代码冲突。
如果有冲突,需要手动解决它们,并使用git add命令将更改标记为已解决。然后,可以使用git commit命令提交更改。


