【Git 教程】Git 基本使用方法

Git 是一个分布式版本控制系统,被广泛应用于各种大小的项目之中。以下是 Git 的基本使用方法(干货):

一、安装 Git

首先,你需要在你的系统上安装 Git。

  • 对于 Windows 系统,你可以从官网下载最新版本的 Git 并进行安装:https://git-scm.com/downloads。
  • 对于 Linux 系统,你可以使用包管理器来安装 Git,例如在 Ubuntu 上使用 sudo apt-get install git

二、初始化配置

安装完 Git 后,需要进行一些基本的配置:

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

三、创建仓库

有两种方式来创建 Git 仓库:

  1. 在本地创建新的仓库:

    git init
    

    这会在当前目录创建一个 .git 目录。

  2. 克隆远程仓库:

    git clone [仓库地址]
    

四、基本操作

  • 添加文件到暂存区:

    git add [文件名]
    
  • 提交文件到本地仓库:

    git commit -m "提交信息"
    
  • 查看当前仓库的状态:

    git status
    
  • 查看提交历史:

    git log
    

    下面这句可以让你的 log 输出变得更好看:

    git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'
    

    为了以后输入方便,可以把上面的指令做成一个自定义指令,方法如下:

    1. 输入 git config --global -e
    2. 添加以下内容:
      [alias]
      # 美化log
      lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'
      

    以后只需要输入:git lg 即可。

五、分支管理

  • 创建分支:

    git branch [分支名]
    
  • 切换分支:

    git checkout [分支名]
    
  • 创建并切换分支:

    git checkout -b [新分支名]
    

    这等同于以下两个命令的组合:

    git branch [新分支名]
    git checkout [新分支名]
    
  • 删除分支

    删除一个已经合并过的分支:

    git branch -d [分支名]
    

    如果分支还没有合并,并且你确定要删除它,可以使用 -D 选项强制删除:

    git branch -D [分支名]
    
  • 合并分支:

    git merge [要合并的分支名]
    
  • 分支重命名

    git branch -m [旧分支名] [新分支名]
    

六、远程操作

  • 添加远程仓库:

    git remote add origin [仓库地址]
    
  • 推送本地分支到远程仓库:

    git push -u origin [本地分支名]:[远程分支名]
    

    如果远程分支名和本地分支名相同,可以简写为:

    git push -u origin [分支名]
    
  • 拉取远程仓库的最新内容:

    git pull
    
  • 查看远程仓库信息:

    git remote -v
    
  • 删除远程分支

    git push origin --delete [远程分支名]
    

    或者:

    git push origin :[远程分支名]
    
  • 清除本地的远程分支引用

    git remote prune [远程分支名]
    
  • 跟踪远程分支:

    git branch --track [本地分支名] [远程分支名]
    

七、解决合并冲突

合并冲突是使用 Git 进行分支管理时常见的情况。当两个分支对同一个文件的同一部分进行了不同的修改时,Git 无法自动决定应该保留哪个版本,这时就会发生合并冲突。以下是解决合并冲突的详细步骤:

识别合并冲突

当你尝试合并两个分支时,如果发生了冲突,Git 会输出以下信息:

Auto-merging [文件名]
CONFLICT (content): Merge conflict in [文件名]
Automatic merge failed; fix conflicts and then commit the result.

查看冲突文件

你需要手动打开冲突的文件。冲突的文件内容会包含以下标记:

<<<<<<< HEAD
[当前分支的更改]
=======
[被合并分支的更改]
>>>>>>> [分支名]

解决冲突

  1. 编辑冲突文件:打开包含冲突的文件,决定哪些更改应该保留,哪些应该丢弃。或者你可以结合两个分支的更改。
  2. 删除 Git 的冲突标记:手动删除文件中的 <<<<<<<=======>>>>>>> 标记以及相关的更改。
  3. 测试更改:在解决了所有冲突之后,确保代码仍然可以正常工作。

标记冲突解决

  1. 添加文件:一旦冲突解决并保存了文件,你需要告诉 Git 冲突已经解决,可以通过以下命令添加文件:

    git add [文件名]
    

    如果有多个文件存在冲突,需要对每个解决冲突的文件执行这个命令。

  2. 提交合并:在所有冲突解决并添加之后,执行以下命令来完成合并提交:

    git commit -m "解决合并冲突"
    

    这个提交将会包含所有合并的更改。

使用图形界面解决冲突

如果你不习惯命令行操作,Git 还提供了图形界面工具来帮助解决冲突:

git mergetool

这个命令会启动一个图形界面工具,帮助你更容易地识别和解决冲突。

取消合并

如果你决定不继续合并,你可以通过以下命令取消合并:

git merge --abort

这将撤销合并操作,并且返回到你执行 git merge 命令之前的状态。

八、rebase(稍微进阶)

git rebase 是 Git 中的一个重要命令,用于在当前分支上应用另一个分支的更改。它通常用于将一个分支的更改应用到另一个分支合并分支中多个提交信息(我个人常用,非常爽),以便将更改组合成一个线性提交历史。以下是 git rebase 的详细说明:

基本语法

git rebase 的基本语法如下:

git rebase [选项] <base> [compare]

其中 <base> 是要应用更改的分支或提交的名称,[compare] 是要与其进行比较的分支或提交的名称。如果省略 <compare>,则 Git 会使用当前分支作为 <compare>

使用 git rebase 将更改应用到另一个分支

假设你有两个分支:featuremaster,你想要将 feature 分支的更改应用到 master 分支。你可以使用 git rebase 命令将 feature 分支的更改应用到 master 分支上。

git checkout master
git rebase feature

这将把 feature 分支的更改应用到 master 分支上。如果存在冲突,Git 会暂停 rebase 过程,直到你解决冲突并提交更改。

使用 git rebase 将更改组合成一个线性提交历史

git rebase 的另一个常见用途是将多个提交组合成一个线性提交历史。假设你有以下提交历史:

A - B - C - D
       \
        E - F

其中 EF 是基于 C 的提交。你可以使用 git rebase 将这些提交组合成一个线性提交历史,如下所示:

A - B - C - E - F - D'

其中 D' 是基于 EF 的提交。要执行此操作,请按照以下步骤操作:

  1. 检查 feature 分支:

    git checkout feature
    
  2. 使用 git rebase -i 将提交组合成一个线性提交历史:

    git rebase -i C^
    

    这将打开一个交互式编辑器,其中列出了要组合的提交。你可以编辑这个列表,例如删除或更改提交的顺序。当你保存并关闭编辑器时,Git 将根据你的指令组合提交。

    在 Git 中,^ 符号用于表示一个提交的父提交。因此,C^ 表示提交 C 的父提交。在执行 git rebase -i C^ 时,Git 将使用提交 C 的父提交作为基提交,并将提交 C 到当前提交的提交历史应用到基提交上。

  3. 将更改推送到远程仓库:

    git push origin feature
    

    这将把更改推送到远程仓库。

请注意,git rebase 会改变提交历史,因此应该谨慎使用。在进行 git rebase 之前,最好备份你的代码库,以便在出现问题时可以恢复更改。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Xiao_Ley

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

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

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

打赏作者

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

抵扣说明:

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

余额充值