【GiraKoo】Git工具使用指南

Git工具使用指南

Git是一个分布式版本控制工具,可以用于管理代码。本文介绍了如何使用git工具。

1. SVN和Git的区别

1.1 SVN

SVN是集中式版本控制工具,所有的代码都存储在一个中央服务器上。每个开发者都可以从中央服务器上获取代码,进行修改,然后再提交到中央服务器上。这样,中央服务器上的代码就是最新的代码。

优点:

  1. 中央服务器存储代码,可以方便地进行代码的管理和控制。
  2. 对于非技术人员来说,使用SVN比较容易上手。
  3. 仓库储存在中央服务器上,本地不需要全部下载,占用的本地存储空间较少。
  4. 可以通过权限控制,限制不同开发者对代码的访问和修改。

缺点:

  1. 需要依赖中央服务器,离线工作不方便。
  2. 分支管理和合并较为繁琐,需要手动进行操作。
  3. 不支持多种协议,如http、https、ssh等。
  4. 社区活跃度较低,可用的开源项目和插件相对较少。

1.2 Git

Git是分布式版本控制工具,每个开发者都有一个本地仓库,用于存储代码。开发者可以从中央服务器上获取代码,进行修改,然后再提交到本地仓库中。当开发者需要将代码提交到中央服务器时,可以将本地仓库中的代码推送到中央服务器上。

优点:

  1. 分布式管理,每个开发者都有一个本地仓库,可以离线工作,不需要依赖中央服务器。
  2. 可以有效地处理二进制文件,如图片、视频等。
  3. 分支管理和合并较为简单,可以方便地进行代码的并行开发和版本控制。
  4. 支持多种协议,如http、https、ssh等。
  5. 社区活跃,有大量的开源项目和插件可供使用。

缺点:

  1. 存储方式比较复杂,需要一定的学习成本。
  2. 对于非技术人员来说,使用Git可能会比较困难。
  3. 仓库会被全量同步到本地,占用大量的本地存储空间。
  4. 在同一套环境中切换分支,可能会产生冲突。

2. Git安装

在开始使用git之前,需要先安装git工具。可以从git官网下载安装包进行安装。

3. 创建本地仓库

使用git管理代码,需要先在本地创建一个git仓库。可以通过以下命令在本地创建一个新的git仓库:

git init <repository-name>

4. 添加文件到仓库

在本地仓库中添加文件,可以使用以下命令:

git add <file>

5. 提交文件到仓库

在本地仓库中提交文件,可以使用以下命令:

git commit -m "commit message"

6. 查看仓库状态

可以使用以下命令查看当前仓库的状态:

git status

7. 查看提交历史

可以使用以下命令查看提交历史:

git log

8. 撤销修改

8.1 git checkout

如果在修改文件后想要撤销修改,可以使用以下命令:

git checkout -- <file>

8.2 git reset --soft / --hard

此外还可以使用git reset将库整体进行充值。
git reset soft
git reset hard

9. 分支管理

git支持分支管理,可以使用以下命令创建和切换分支:

git branch <branch-name>
git checkout <branch-name>

10. git fetch

可以通过git fetch命令,将远程库的变更同步到本地库。注意,此时是更新到.git目录下的数据库中,并不会将变更同步到当前显示的文件中。如果希望当前显示的文件进行更新,需要和下面的git merge, git rebase, git pull等命令配合使用。
git fetch

10. 合并分支

在git中,可以使用以下命令将一个分支合并到当前分支:

10.1 git merge

git merge会将两个分支的修改合并到一起,形成一个新的提交。这个新的提交会有两个父节点,分别指向被合并的两个分支。这种方式会保留原有的提交历史,但会产生很多无用的合并提交。

git merge <branch-name>

在这里插入图片描述

git merge

10.2 git rebase

git rebase会将当前分支的修改“移动”到目标分支的最新提交之后,形成一个新的提交。这个新的提交只有一个父节点,指向目标分支的最新提交。这种方式会改变提交历史,但会使提交历史更加清晰。

git rebase

git rebase <branch-name>

10.3 git merge和git rebase的区别

git merge和git rebase都是用于合并分支的命令,但它们的实现方式不同。

git merge会将两个分支的修改合并到一起,形成一个新的提交。这个新的提交会有两个父节点,分别指向被合并的两个分支。这种方式会保留原有的提交历史,但会产生很多无用的合并提交。

git rebase会将当前分支的修改“移动”到目标分支的最新提交之后,形成一个新的提交。这个新的提交只有一个父节点,指向目标分支的最新提交。这种方式会改变提交历史,但会使提交历史更加清晰。

因此,如果需要保留原有的提交历史,可以使用git merge;如果需要使提交历史更加清晰,可以使用git rebase。但需要注意的是,使用git rebase会改变提交历史,可能会对其他人造成影响,因此需要谨慎使用。

11. git conflict

如果两个人基于同一个节点,提交了2个分支。合并时,将会发生冲突。
git conflict

12. git cherry-pick

git可以将某一次提交的变更内容单独导出,成为一个patch。实现只将某一个提交移动到其他分支的能力。
git cherry pick

11. 远程仓库管理

  • 可以使用以下命令将本地仓库与远程仓库进行关联:
git remote add origin <remote-repository-url>
  • 可以使用以下命令将本地仓库的代码推送到远程仓库:
git push -u origin master
  • 可以使用以下命令从远程仓库拉取代码到本地仓库:
    默认模式下,git pull = git fetch + git merge。
    git pull
git pull origin master
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

GiraKoo

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

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

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

打赏作者

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

抵扣说明:

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

余额充值