什么是 Git?

  Git 是一种分布式版本控制系统,它可以帮助开发者跟踪文件的变化、协作开发、管理代码库等。与集中式版本控制系统不同,Git 的每个工作副本都包含完整的项目历史,这使得在没有网络连接的情况下也能独立进行工作。Git 的数据模型是基于快照,而不是差异,这为快速、高效地处理大型项目提供了支持。

安装与配置

  首先,需要在计算机上安装 Git。访问 https://git-scm.com/downloads 下载适合操作系统的版本,并按照安装向导进行安装。

  安装完成后,配置 Git 用户名和电子邮件地址,这样在提交代码时就能识别身份:

git config --global user.name "Your Name"git config --global user.email "your.email@example.com"

创建新仓库

  创建一个新的 Git 仓库非常简单。进入要进行版本控制的项目文件夹,并执行以下命令:

git init

  这将在当前目录下创建一个名为 “.git” 的子目录,用于存储版本控制相关的信息。

建立远程仓库

  创建远程仓库可以让同一网络下其他用户使用此仓库进行pull和push

mkdir /path/to/remote/repo.gitcd /path/to/remote/repo.gitgit init --bare

  在本地仓库中添加远程仓库,并将代码推送到它:

git remote add origin remote-repo-url//或者将远程仓库克隆git clone用户名@ip:/路径.git//每次修改代码需要先git pull更新为最新代码git push -u origin master

本地分支合入远程仓库分支

如果在远程仓库中创建了多个分支,并且想要将本地代码推送到其中的特定分支,需要进行一些额外的步骤。以下是将本地代码推送到指定分支的方法:

  1. 首先,确保已经克隆了远程仓库到本地,并通过以下命令查看所有分支的列表:
git branch -r

这将显示远程仓库中的所有分支列表。

  1. 创建并切换到要推送代码的本地分支。如果这个分支在本地不存在,可以通过以下命令在本地创建它并切换到该分支:
git checkout -b local-branch-name origin/remote-branch-name

请将 “local-branch-name” 替换为本地分支的名称,“remote-branch-name” 替换为远程仓库中相应分支的名称。

  1. 在本地分支上进行修改或添加新文件。

  2. 将修改或新文件添加到暂存区:

git add .
  1. 提交修改:
git commit -m "Your commit message"
  1. 将本地分支的更改推送到远程分支:
git push origin local-branch-name:remote-branch-name

请将 “local-branch-name” 替换为要推送的本地分支的名称,“remote-branch-name” 替换为远程仓库中相应分支的名称。

  1. 如果远程分支不存在,可以使用以下命令推送并在远程仓库中创建分支:
git push origin local-branch-name:remote-branch-name

此命令将会在远程仓库中创建一个新的分支,该分支将与本地的分支同步。

请注意,推送代码时可能会遇到一些问题,特别是在多人协作开发的情况下。在推送代码之前,请确保已经与其他开发者沟通,并了解如何正确地推送代码到正确的分支上。在多人协作开发中,推荐使用 Pull Request 或者其他合并流程来确保代码的稳定性和一致性。

基本工作流程

Git 的基本工作流程如下:

  1. 修改文件:在项目文件夹中进行代码编写或修改。

  2. 暂存文件:将要提交的修改暂存到暂存区,使用以下命令可以将所有修改添加到暂存区:

git add .

或者,如果只想暂存特定文件,可以使用:

git add file1 file2
  1. 提交更改:将暂存区的修改提交到版本库,并添加一个描述性的提交消息:
git commit -m "Add new feature" 
  1. 推送到远程仓库:如果与其他开发者协作,可以将提交推送到共享的远程仓库:
git push origin master

克隆某一分支

如果想要克隆远程仓库中的特定分支,可以使用以下命令:

git clone -b branch-name remote-repo-url

例如,克隆名为 “development” 的分支:

git clone -b development https://example.com/your-repo.git

代码回滚

在开发过程中,有时可能需要回滚代码到以前的版本。Git 提供了多种方法来实现这一点。以下是一些常用的回滚技巧:

  1. 回滚到上一个提交版本:
git revert HEAD
  1. 回滚到指定的提交版本:
git revert commit-hash
  1. 回滚到上一个提交之前的状态,保留更改但不提交:
git reset HEAD^
  1. 回滚到指定的提交版本,放弃该版本之后的所有更改:
git reset commit-hash

请注意,git revert 不会修改历史提交,而是创建一个新的提交来撤消指定的更改;而 git reset 会改变提交历史,慎用。

常用命令与使用例子

  1. git status: 查看工作区的状态,显示已修改但未暂存和已暂存的文件。

  2. git log: 查看提交历史,显示提交的作者、日期和提交消息。

  3. git diff: 查看工作区和暂存区之间的差异。

  4. git branch: 查看本地分支列表,并显示当前所在分支。

  5. git checkout: 切换分支或还原文件到特定版本。

  6. git pull: 从远程仓库拉取代码并合并到当前分支。

  7. git merge: 将指定分支的更改合并到当前分支。

  8. git clone: 克隆远程仓库到本地。

示例

场景1: 创建新功能分支并合并到主分支

# 创建新功能分支git checkout -b new-feature# 在新功能分支上进行修改# ...# 将新功能分支合并到主分支git checkout mastergit merge new-feature# 删除新功能分支(如果不再需要)git branch -d new-feature

场景2: 与团队合作

# 从远程仓库克隆项目到本地git clone https://example.com/your-repo.git# 创建并切换到新分支git checkout -b my-feature# 编辑文件# ...# 将修改提交到本地仓库git add .git commit -m "Implement new feature"# 将修改推送到远程仓库git push origin my-feature