Git的用法
为什么要使用GIT?
Git是一种分布式版本控制系统,用于跟踪和管理计算机程序代码的变化。它由Linus Torvalds于2005年创建,最初用于管理Linux内核开发,目前已被广泛应用于各种软件项目和团队协作中。
Git的一些重要概念和功能有:
Git在开发过程中的优势包括:
- 分布式特性: 每个开发人员都可以在本地工作,不受网络连接的限制。
- 分支管理: 可以并行开发不同功能,然后将更改合并在一起,从而减少冲突。
- 版本历史: 可以轻松地查看代码的演变历史,比较不同版本之间的更改。
- 协作与合并: 多人团队可以同时工作,然后将各自的更改合并到共同的代码库中。
0x00
创建github ssh key
在github中右上角→我→设置→Connect with SSH→Generate new SSH Key打开以下界面
在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仓库。
git clone
这将从远程仓库克隆代码到本地。
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是一个分布式系统,在多人编辑同一个文件到情况下可能发生冲突,以下为解决冲突的几种方式。
拉取远程更改或合并分支: 首先,确保的本地仓库是最新的,可以使用以下命令拉取远程更改或合并分支:
git pull origin
发现冲突: 如果在拉取或合并过程中发生冲突,Git会将冲突标记为以下样式的注释:
> 提交哈希值
手动解决冲突: 打开包含冲突的文件,将看到冲突的部分在上述样式的注释之间。此时需要手动编辑此文件以决定保留哪些更改或如何合并这些更改。例如,可以将冲突的部分修改成您希望的最终状态,删除冲突标记,然后保存文件。
暂存解决后的文件: 在解决冲突后,使用以下命令将解决后的文件标记为已解决:
git add
完成合并或提交: 一旦所有冲突都已解决并且文件已暂存,您可以完成合并或提交:
git commit -m "解决冲突"
推送更改(如果是合并分支的情况): 如果您是在合并分支时解决冲突,解决冲突后,您可能需要将更改推送到远程仓库: