2024-10-16
学习
00
请注意,本文编写于 238 天前,最后修改于 157 天前,其中某些信息可能已经过时。

目录

Git 基本用法详解
工作目录、暂存区和仓库
基本 Git 命令
git add
git commit
git reset
git checkout
交互模式
跳过暂存区
git commit -a
git commit files
git checkout HEAD -- files
图形表示
更多命令详解
git diff
git commit --amend
git checkout
git reset
git merge
git cherry-pick
git rebase
使用github与他人共创项目
1. 创建 GitHub 账户
2. 创建一个新的项目(仓库)
3. 克隆仓库到本地
4. 创建新分支
5. 进行代码修改
7. 创建 Pull Request(PR)
8. 代码审查与讨论
9. 合并 Pull Request
10. 更新本地仓库
11. 删除远程分支
12. 重复协作流程
- git stash 把你现在更改的文件暂存一下。

Git 基本用法详解

Git 是一个分布式版本控制系统,它允许用户在本地和远程仓库之间跟踪和管理代码的变更。以下是一些基本的 Git 命令和概念,帮助您更好地理解并使用 Git。

工作目录、暂存区和仓库

在 Git 中,文件的状态可以分为三个主要部分:工作目录、暂存区和仓库。

  • 工作目录:这是您进行实际文件编辑的地方。您对文件所做的更改首先反映在这里。
  • 暂存区(索引):暂存区是一个中间区域,用于准备下一次提交。您可以通过 git add 命令将文件从工作目录移动到暂存区。
  • 仓库:仓库是您的代码历史记录的存储地。每次提交都会在仓库中创建一个新的快照。

image.png

基本 Git 命令

git add

git add files 命令用于将指定的文件添加到暂存区。例如:

sh
git add file1.txt file2.txt

git commit

git commit 命令用于将暂存区的更改提交到仓库。这会创建一个新的提交记录,您可以使用 -m 选项添加提交信息:

sh
git commit -m "Add changes to file1 and file2"

git reset

git reset -- files 命令可以撤销最后一次 git add 操作。如果您想要撤销所有暂存区的文件,可以使用:

sh
git reset

git checkout

git checkout -- files 命令用于将文件从暂存区复制到工作目录,丢弃本地修改:

sh
git checkout -- file1.txt

交互模式

您可以使用以下命令进入交互模式:

sh
git add -p git checkout -p

跳过暂存区

有时候,您可能希望直接从仓库中取出文件或者直接提交代码。为此,您可以使用以下命令:

git commit -a

git commit -a 命令相当于运行 git add 将所有当前目录下的文件加入暂存区域,然后运行 git commit

sh
git commit -a -m "Commit all changes"

git commit files

git commit files 命令进行一次包含最后一次提交加上工作目录中文件快照的提交,并且文件被添加到暂存区域。

git checkout HEAD -- files

git checkout HEAD -- files 命令用于回滚到复制最后一次提交的状态。

图形表示

为了更好地理解 Git 的工作原理,通常会使用图形来表示提交历史。例如,绿色的 5 位字符表示提交的 ID,分支用橘色显示,当前分支由附在其上的 HEAD 标识。

更多命令详解

git diff

git diff 命令用于查看两次提交之间的变动。有多种方法可以查看这些变动,例如:

sh
git diff HEAD HEAD~1

git commit --amend

如果您想更改一次提交,可以使用 git commit --amend。Git 会使用与当前提交相同的父节点进行一次新提交,旧的提交会被取消。

git checkout

git checkout 命令用于从历史提交或暂存区域中拷贝文件到工作目录,也可用于切换分支。

git reset

git reset 命令用于把当前分支指向另一个位置,并且有选择的变动工作目录和索引。

git merge

git merge 命令用于合并不同分支。合并前,索引必须和当前提交相同。

git cherry-pick

git cherry-pick 命令用于复制一个提交节点并在当前分支做一次完全一样的新提交。

git rebase

git rebase 命令用于在当前分支上重演另一个分支的历史,提交历史是线性的。衍合是合并命令的另一种选择。

使用github与他人共创项目

GitHub 是一个强大的平台,适用于开发者进行协作和共创项目。通过 GitHub,多个开发者可以同时工作在同一个项目上,进行代码的版本管理和共享。本文将带你了解如何使用 GitHub 与他人共创项目,具体的操作步骤如下:

1. 创建 GitHub 账户

如果你还没有 GitHub 账户,首先需要去 GitHub 官网 注册一个免费账户。

2. 创建一个新的项目(仓库)

如果你是项目的发起者,首先需要创建一个新的 Git 仓库来存放你的代码和文件:

  1. 登录 GitHub 账户,点击右上角的 + 按钮,选择 New repository
  2. 填写仓库名称、描述,选择是否公开(Public)或私有(Private),然后点击 Create repository
  3. 创建仓库后,你可以看到一个简单的指南,帮助你将本地项目上传到 GitHub 上。

3. 克隆仓库到本地

为了在本地机器上开始协作开发,你需要将项目从 GitHub 上克隆到本地:

  1. 在 GitHub 上进入你想参与的项目页面。
  2. 点击页面右上方的 Code 按钮,复制 HTTPS 或 SSH 地址(如果你没有设置 SSH 密钥,建议使用 HTTPS 地址)。
  3. 在你的命令行工具中,执行以下命令来克隆仓库:
    bash
    git clone https://github.com/username/repository.git
    这会将项目复制到本地工作目录。

4. 创建新分支

为了在项目中进行协作开发,避免直接影响主分支(通常是 mainmaster),你应该为自己的工作创建一个新分支。使用分支可以帮助你和其他协作开发者保持项目的整洁,便于后期合并。

  1. 进入克隆的仓库目录:
    bash
    cd repository
  2. 创建并切换到一个新分支:
    bash
    git checkout -b feature-branch
    这里 feature-branch 是你为新功能或修改创建的分支名称。

5. 进行代码修改

在新分支上进行开发或修改代码。你可以修改文件,添加新功能,或者修复 bug。

  1. 修改文件后,查看已更改的文件:
    bash
    git status
  2. 将修改的文件加入暂存区:
    bash
    git add .
    或者你也可以指定某个文件:
    bash
    git add filename
  3. 提交更改到本地仓库:
    bash
    git commit -m "Add new feature or fix issue"

6. 推送代码到 GitHub

在本地完成代码修改并提交后,接下来需要将这些更改推送到 GitHub 上的远程仓库:

bash
git push origin feature-branch

这将你的更改推送到 GitHub 上的 feature-branch 分支。

7. 创建 Pull Request(PR)

一旦你的代码推送到 GitHub 上,其他协作者就可以查看并审查你的更改。如果你希望将自己的修改合并到主分支(如 mainmaster),你需要创建一个 Pull Request(PR)。

  1. 在 GitHub 页面上,进入你所在的仓库。
  2. 点击 Compare & Pull Request 按钮,GitHub 会自动比较你新分支与主分支的差异。
  3. 添加标题和描述,详细描述你的更改。
  4. 点击 Create Pull Request,提交你的更改请求。

8. 代码审查与讨论

一旦你创建了 Pull Request,其他团队成员可以对你的代码进行审查并提出反馈。他们可以:

  • 留下评论。
  • 请求进一步的修改。
  • 直接在 PR 中进行代码修改(如果有权限)。

9. 合并 Pull Request

如果你提交的 PR 已通过审查并得到了批准,项目的维护者或协作者会将你的分支合并到主分支中。通常这会通过点击 GitHub 中的 Merge pull request 按钮来完成。

10. 更新本地仓库

在合并了 PR 后,记得将远程仓库的更新拉取到本地:

bash
git checkout main # 切换到主分支 git pull origin main # 拉取主分支的最新更改

11. 删除远程分支

如果合并 PR 后,通常你可以删除已经合并的远程分支来保持仓库整洁:

bash
git push origin --delete feature-branch

12. 重复协作流程

以上步骤是一个典型的 GitHub 协作流程。你可以继续按照这个流程为项目贡献代码:

  • 创建新分支进行修改。
  • 提交并推送代码。
  • 创建 Pull Request。
  • 进行代码审查与合并。

  • git stash 把你现在更改的文件暂存一下。
  • git pull origin master --rebase 从远端拉最新代码。
  • git stash apply 暂存的更改文件恢复。

本文作者:han

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!