Git的基本用法| 青训营

138 阅读5分钟

Git的用法

为什么要使用GIT?

Git是一种分布式版本控制系统,用于跟踪和管理计算机程序代码的变化。它由Linus Torvalds于2005年创建,最初用于管理Linux内核开发,目前已被广泛应用于各种软件项目和团队协作中。

Git的一些重要概念和功能有:

  1. 版本控制:  Git允许开发人员跟踪代码的历史变化,从而可以轻松地查看以前的版本、比较更改以及回退到旧版本。
  2. 分布式系统:  Git不仅仅是一个中心服务器上的版本控制系统,每个开发人员的本地计算机都包含完整的代码库和历史记录。这使得开发人员可以在没有网络连接的情况下工作,以及更容易处理分支和合并操作。
  3. 代码仓库:  代码仓库是存储项目代码和历史记录的地方。每个开发人员可以在自己的本地计算机上拥有一个完整的代码仓库,并可以从远程仓库克隆、推送和拉取更改。
  4. 提交(Commit):  提交是指将一组文件更改添加到代码仓库的过程。每个提交都有一个描述性的消息,用于解释为什么进行了这些更改。
  5. 分支(Branch):  分支是独立的开发路径,允许开发人员在不影响主要代码线的情况下开展工作。分支可以用于开发新功能、修复错误等。
  6. 合并(Merge):  合并是将一个分支的更改合并到另一个分支的过程。这使得团队可以将不同开发路径的工作合并到一起。
  7. 远程仓库:  远程仓库是存储在互联网上的代码仓库,通常用于团队协作。常见的远程仓库托管服务包括GitHub、GitLab和Bitbucket。
  8. 拉取(Pull)和推送(Push):  拉取是从远程仓库获取最新更改的过程,而推送是将本地更改上传到远程仓库的过程。
  9. 标签(Tag):  标签是代码仓库中特定版本的命名指针,通常用于标识发布版本。

Git在开发过程中的优势包括:

  • 分布式特性:  每个开发人员都可以在本地工作,不受网络连接的限制。
  • 分支管理:  可以并行开发不同功能,然后将更改合并在一起,从而减少冲突。
  • 版本历史:  可以轻松地查看代码的演变历史,比较不同版本之间的更改。
  • 协作与合并:  多人团队可以同时工作,然后将各自的更改合并到共同的代码库中。

0x00

  1. 创建github ssh key

    在github中右上角→我→设置→Connect with SSH→Generate new SSH Key打开以下界面

截屏2023-08-27 13.34.56.png

  1. 在terminal 中创建一对密钥

    $ ssh-keygen -t ed25519 -C "your_email@example.com"

    此处"your_email@example.com"为你的GitHub邮箱,使用的算法为Ed25519 算法

    此时将生成一对密钥

    Generating public/private ALGORITHM key pair.

    后提示选择密钥保存的位置时,按下return键则将密钥保存到默认位置

    按照系统提示,为密钥设置密码即可完成设置

    执行以下指令,将公钥复制到上图key中,完成后点击Add SSH key即可

    $pbcopy < ~/.ssh/id_ed25519.pub

0x01

使用git提交文件

在多人开发合作过程中,一般会将主仓库fork到自己的帐户下,再clone到本地进行开发,在完成某个功能后,再将自己的文件提交到自己帐户下的仓库,在GitHub中创建一个PR,写清楚修改的内容或完成的部分,提交PR。说提交的PR将由主仓库的管理员合入分支。

在本地完成开发后,将文件提交到自己的仓库里往往经过了以下三个步骤,即add文件 commit暂存 push到远程仓库。

git add 

git commit -s -m "description"

git push origin

以下为git常用的一些命令

初始化一个新的仓库:

git init

这将在当前目录下创建一个新的Git仓库。

  1. 克隆远程仓库:
git clone <远程仓库URL>

这将从远程仓库克隆代码到本地。

  1. 添加文件到暂存区:
git add <文件名>

这将将指定的文件添加到暂存区,以便在下一次提交时包含这些更改。

提交更改:

git commit -m "提交消息"

这将提交暂存区的更改到本地仓库,并附带一条描述性的提交消息。

查看提交历史:

git log

这将显示提交历史,包括每次提交的作者、时间和提交消息。

创建分支:

git branch <分支名>

这将创建一个新的分支,您可以在新分支上开展工作。

切换分支:

git checkout <分支名>

这将切换到指定的分支。

合并分支:

git merge <要合并的分支名>

这将将指定分支的更改合并到当前分支。

拉取远程更改:

git pull origin <分支名>

这将从远程仓库拉取最新更改并合并到当前分支。

推送更改到远程仓库:

git push origin <分支名>

这将将本地分支的更改推送到远程仓库。

创建标签:

git tag -a <标签名> -m "标签说明" <提交哈希值>

这将在指定的提交上创建一个标签,用于标识特定版本。

查看当前状态:

git status

这将显示当前工作目录的状态,包括未暂存和已暂存的更改。

这只是Git中一些基本的操作和命令示例。Git具有更多功能和选项,您可以通过查阅Git文档或教程深入了解。在使用Git时,建议先在单个文件中尝试这些命令,然后逐步扩展到更大的项目。

0x02

解决冲突

由于git是一个分布式系统,在多人编辑同一个文件到情况下可能发生冲突,以下为解决冲突的几种方式。

  1. 拉取远程更改或合并分支:  首先,确保的本地仓库是最新的,可以使用以下命令拉取远程更改或合并分支:

    git pull origin <分支名>
    
  2. 发现冲突:  如果在拉取或合并过程中发生冲突,Git会将冲突标记为以下样式的注释:

    <<<<<<< HEAD
    本地分支的修改
    =======
    远程分支的修改
    >>>>>>> 提交哈希值
    
  3. 手动解决冲突:  打开包含冲突的文件,将看到冲突的部分在上述样式的注释之间。此时需要手动编辑此文件以决定保留哪些更改或如何合并这些更改。例如,可以将冲突的部分修改成您希望的最终状态,删除冲突标记,然后保存文件。

  4. 暂存解决后的文件:  在解决冲突后,使用以下命令将解决后的文件标记为已解决:

    git add <冲突文件名>
    
  5. 完成合并或提交:  一旦所有冲突都已解决并且文件已暂存,您可以完成合并或提交:

    git commit -m "解决冲突"
    
  6. 推送更改(如果是合并分支的情况):  如果您是在合并分支时解决冲突,解决冲突后,您可能需要将更改推送到远程仓库: