Git 全面教程

随笔4个月前发布 八杯水
52 0 0

1. Git 基本概念

1.1 什么是Git?
Git是一个分布式版本控制系统,它可以记录文件的变更历史,便于多人协作开发项目。每个开发者的工作目录中都拥有整个项目的完整历史记录,这使得Git在网络连接不稳定或离线情况下也能进行开发。

1.2 版本控制系统(VCS)简介
版本控制系统是管理项目变更的工具,它可以跟踪每个文件的修改历史,允许开发者在不同版本之间进行切换、比较、合并等操作。Git是目前最流行的版本控制系统之一,特别适用于分布式团队开发。

2. Git 安装与配置

2.1 Git 安装

  • Windows: 访问Git官网下载适用于Windows的安装程序。安装时可以选择默认选项。
  • macOS: 使用Homebrew安装Git:
    brew install git
    
  • Linux: 在大多数Linux发行版中,Git可以通过包管理器安装,例如在Ubuntu中使用:

    sudo apt-get install git

2.2 配置 Git
配置Git的用户名和邮箱,以便记录在提交历史中:

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

查看当前配置:

git config --list 

3. Git 基本操作

3.1 初始化仓库
创建一个新的Git仓库:

git init 

此命令会在当前目录下创建一个隐藏的 .git 文件夹,包含了所有版本控制信息。

3.2 克隆远程仓库
如果已有一个远程仓库,可以通过 git clone 命令将其克隆到本地:

git clone https://github.com/user/repository.git

这会在本地创建一个与远程仓库内容一致的副本。

3.3 文件的跟踪与提交

  • 查看状态:查看哪些文件被修改了、哪些文件被暂存了:

    git status

  • 添加文件到暂存区:将文件的修改添加到暂存区,准备提交:

    git add <file>

    添加所有修改的文件:

    git add .

  • 提交更改:提交暂存区的文件,并附加提交信息:

    git commit -m "提交信息"

  • 查看提交历史:查看仓库的提交记录:

    git log

    查看每个提交的详细信息:

    git log --stat

3.4 撤销操作

  • 撤销修改:还原工作目录中文件的修改(未暂存):

    git checkout -- <file>

  • 撤销暂存:将已暂存的修改移回工作区:

    git reset HEAD <file>

  • 撤销最后一次提交:保留修改但撤销提交:

    git reset --soft HEAD^

4. 分支管理

4.1 创建分支
创建一个新的分支,用于独立开发新功能或修复bug:

git branch <branch-name>

4.2 切换分支
切换到指定分支:

git checkout <branch-name>

4.3 合并分支
将另一个分支的更改合并到当前分支:

git merge <branch-name>

4.4 删除分支
删除不再需要的分支:

git branch -d <branch-name>

4.5 分支管理策略

  • Feature Branch:为每个新功能创建独立的分支。
  • Hotfix Branch:紧急修复bug时创建独立的分支。
  • Master/Main Branch:主要分支,通常用于存放稳定的代码。
  • Develop Branch:用于整合各个功能分支的开发分支。

5. 远程操作

5.1 关联远程仓库
关联一个远程仓库,使本地仓库能够推送和拉取远程内容:

git remote add origin https://github.com/user/repository.git

5.2 推送到远程仓库
将本地分支的更改推送到远程仓库:

git push origin <branch-name>

首次推送可能需要设置上游分支:

git push -u origin <branch-name>

5.3 拉取远程更新
从远程仓库拉取最新的更改并合并到本地:

git pull

6. 处理冲突

在合并分支时,如果同一文件的同一部分被不同的修改,Git 会提示冲突。你需要手动解决冲突,并继续完成合并。

6.1 查看冲突区域
Git会在冲突的文件中标记冲突区域:

<<<<<<< HEAD // 你的更改 ======= // 来自另一个分支的更改 >>>>>>> branch-name

你需要选择并编辑这些冲突,然后保存文件。

6.2 标记冲突解决
解决冲突后,使用 git add 添加修改,并完成合并:

git add <file> git commit

7. 高级操作

7.1 交互式重写历史
有时你可能需要修改之前的提交历史,这可以通过 git rebase 来实现:

git rebase -i HEAD~3

此命令将打开一个交互式界面,你可以选择修改、删除、合并提交等。

7.2 Stash 临时保存更改
在切换分支时,如果当前分支有未提交的更改,可以使用 git stash 暂存这些更改:

git stash

之后可以通过 git stash apply 恢复这些更改。

8. 常见问题与解决

8.1 忘记添加文件后提交了怎么办?
可以使用 git commit --amend 将新文件添加到上一次提交中:

git add <new-file> git commit --amend

8.2 推送时遇到拒绝错误
如果在推送时遇到拒绝错误,可能是因为远程仓库有新提交。你需要先拉取这些更改:

git pull --rebase git push

8.3 如何删除远程分支?
使用 git push 命令删除远程仓库中的分支:

git push origin --delete <branch-name>

9. 学习资源

  • Git 官方文档
  • Pro Git 电子书
  • 廖雪峰的 Git 教程
© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...