gite 实战教程

下面是一份简单的Git实战教程,主要涵盖几个基础操作步骤:

1. 安装Git

首先,你需要在你的计算机上安装Git。你可以去Git官方网站下载并安装对应操作系统的版本:https://git-scm.com/downloads

2. 创建版本库(Repository)

在本地创建一个新的Git仓库:

mkdir myproject
cd myproject
git init

这里的myproject是你自定义的项目名称。

3. 添加文件并提交

在项目中创建或复制文件后,使用以下命令添加文件到暂存区并提交:

touch README.md
git add README.md
git commit -m "Initial commit with README file"

4. 设置用户名和邮箱

在首次使用Git前,你需要设置你的用户名和邮箱,这对于跟踪提交记录非常重要:

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

5. 连接到远程仓库(如GitHub、GitLab或Gitee)

首先在远程仓库平台创建一个新的空仓库。然后,将本地仓库与远程仓库关联并推送上代码:

# 添加远程仓库地址
git remote add origin https://github.com/yourusername/yourrepository.git

# 推送本地仓库到远程仓库(默认分支为master,现在一般推荐main)
git push -u origin main

6. 克隆现有仓库

如果你想要克隆一个已经存在的远程仓库到本地,可以这样做:

git clone https://github.com/otheruser/someproject.git

7. 日常操作

查看状态:git status
拉取更新:git pull origin main
添加改动:git add . (添加所有改动)或 git add <file> (只添加指定文件)
提交改动:git commit -m "Commit message"
推送改动:git push origin main

 8. 分支管理

  • 创建分支:

git branch feature-x  # 创建名为feature-x的新分支
  • 切换分支:

git checkout feature-x  # 切换到feature-x分支
  • 或使用新版本的Git(>= 2.23)中的简洁命令:

git switch feature-x
  • 创建并立即切换到新分支:

git checkout -b feature-x  # 创建并切换到名为feature-x的新分支
  • 或使用新版本的Git命令:

git switch -c feature-x
  • 合并分支:

git checkout main  # 切换回主分支
git merge feature-x  # 将feature-x分支的更改合并到当前分支(这里是main)
  • 删除分支:

git branch -d feature-x  # 删除已合并的feature-x分支

如果分支未被合并并且你想强制删除,可以使用 -D 代替 -d。

9. 处理冲突

在合并过程中可能出现冲突,此时需要手动解决冲突,并再次提交。

1.当出现冲突时,编辑冲突文件,保留你希望保留的部分,移除Git插入的冲突标记(例如 <<<<<<< HEAD, =======, >>>>>>> otherbranch)。
2.使用 git add 命令将解决冲突后的文件加入暂存区。
执行 git commit 以提交合并。

10. 标签管理

  • 创建标签:

git tag v1.0  # 创建一个名为v1.0的标签,指向当前HEAD
git tag -a v1.1 -m "Version 1.1 release" HEAD^  # 创建带有注释的标签,指向HEAD的父提交
  •  推送标签到远程仓库:

git push origin --tags  # 将所有本地标签推送到远程仓库

11. 查看历史记录

  • 查看提交历史:

git log  # 显示详细的提交历史
  • 查看简洁历史:

git log --oneline  # 显示每条提交记录的简洁摘要
  • 查找特定提交:

git log --grep="关键词"  # 根据提交信息中的关键词搜索
  • 查看某次提交的内容差异:

git diff <commit-id>  # 查看指定提交与上一次提交之间的差异
git show <commit-id>  # 显示指定提交的详细信息以及内容差异

12. 回滚操作

  • 撤销最后一次提交(未推送):

git reset --soft HEAD~1  # 保留更改,撤销提交
git reset --hard HEAD~1  # 删除更改,撤销提交
  • 回滚到任意提交:

git checkout <commit-id>  # 检出特定提交,但不会改变HEAD指针
git reset --hard <commit-id>  # 强制重置HEAD指针到指定提交,丢弃之后的所有提交
  • 撤销对工作区的修改:

git checkout .  # 恢复所有未暂存的更改

13. 配置忽略文件

创建.gitignore文件,列出不想被Git追踪的文件或文件类型。例如:

*.log
build/
dist/
node_modules/
.env

14. 存储密码和凭证

为了避免频繁输入GitHub/GitLab等远程仓库的用户名和密码,可以使用git-credential-cache或git-credential-store存储凭证,或者配置SSH密钥。

 15. 子模块管理

  • 添加子模块

子模块允许你将一个Git仓库作为另一个Git仓库的组成部分。要添加子模块到你的项目中:

git submodule add https://example.com/submodule.git path/to/submodule  # 添加子模块

这里,https://example.com/submodule.git 是子模块仓库的URL,path/to/submodule 是你希望在项目中放置子模块的路径。

  • 克隆包含子模块的仓库

当你克隆一个包含子模块的项目时,需要运行两个命令:

git clone https://example.com/main-repo.git  # 克隆主仓库
cd main-repo
git submodule update --init --recursive  # 初始化并拉取所有子模块
  • 更新子模块

若要更新子模块至特定版本或最新版本,需进入子模块目录:

cd path/to/submodule
git fetch origin
git checkout <branch-or-commit>
cd ..
  • 然后更新父项目的子模块引用:

git add path/to/submodule
git commit -m "Update submodule to a new version"

16. Stash(暂存)

  • 保存未提交的更改

当你需要暂时把未提交的更改放到一边,以便切换分支或执行其他操作时,可以使用stash:

git stash  # 保存所有未提交的更改
  • 恢复暂存的更改

要恢复暂存的更改,可以使用以下命令:

git stash apply  # 应用最近暂存的更改
git stash pop  # 应用并删除最近暂存的更改

17. Pull Request 和 Merge Request

在GitHub、GitLab等托管平台上,Pull Request(PR)或Merge Request(MR)是一种常见的协作方式,用于向项目贡献代码。开发人员通常会从自己的分支发起PR/MR,请求项目管理员或维护者将其更改合并到主分支。

18. 交互式Rebase

交互式Rebase允许你修改一系列提交的历史,包括但不限于合并提交、重排提交顺序、修改提交消息以及 squash(压缩)多个提交。

  • 交互式Rebase示例

假设你想整理一下最近的几个提交,可以使用以下命令:

git rebase -i HEAD~4  # 对最近4个提交进行交互式重做

这将会打开一个文本编辑器,列出最近4个提交及其哈希值。在这个文本文件中,你可以:

将pick改为reword以修改提交消息
将pick改为edit以临时停止重做过程并在提交之间进行修改
将pick改为squash或fixup以合并提交
改变提交的顺序,即移动各行的位置

保存并关闭编辑器后,Git会按照你指定的方式重新应用这些提交。

19. Cherry-Pick

Cherry-pick命令让你能够选择性地将某个提交应用到当前分支。

git cherry-pick <commit-hash>  # 把指定提交的内容复制到当前分支的新的提交中

 20. Reflog

Reflog记录了所有HEAD和分支引用的变化,即使那些已经被删除的提交也能在这里找到。

  • 查看Reflog

git reflog  # 显示所有HEAD的引用日志

如果你误删了提交或丢失了分支,Reflog可以帮助你找回它们。

21. 工作流示例

Git的工作流有很多,如集中式工作流、特性分支工作流、Forking工作流、GitFlow工作流等。选择哪种工作流取决于团队的需求和规模。
例如,在特性分支工作流中,每个新功能或修复都创建在一个独立的分支上,完成后再合并回主分支。

以上内容只是Git强大功能的一部分。掌握这些基础知识后,你可以根据团队需求选择适合的工作流,更好地利用Git进行版本控制和协作开发。随着实践的深入,你会发现Git在大型项目管理、多人协作等方面提供的众多高级特性非常有价值。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马卫斌 前端工程师

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值