git入门

69 阅读6分钟

Git是什么?

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

git不仅仅是一个版本控制系统,它也是个内容管理系统,工作系统。它与SVN(集中式版本控制系统)有着很大的区别。

git是分布式的,这是和SVN最核心的区别。每个开发者的本地都拥有一个完整的代码仓库副本,包括所有的版本历史和代码,而SVN依赖于一个中央服务器来存储所有的代码和版本信息,开发者需要通过网络连接到服务器进行代码的获取和提交。

基础配置

安装完git后,我们需要对git进行一些基础的配置,方便后续的操作。

  1. 全局设置用户名和邮箱(适用于所有项目)

git config --global user.name "Your Name" git config --global user.email "Your email"

  1. 局部设置用户名和邮箱(仅适用于当前项目)

git config user.name "Your Name" git config user.email "Your email"

  1. 查看配置信息

git config user.name git config user.email

基础操作

一. 初始化仓库

cd your_project //进入项目目录 git init //初始化git仓库

二. 文件状态与操作

在git里,文件有三种主要状态:已修改(modified),已暂存(staged)和已提交(committed)。 已修改:当你在工作目录中对文件进行编辑修改文件内容后,文件就处于已修改状态。
已暂存:使用git add 命令可以把已修改的文件加入到暂存区,使文件进入已暂存状态,暂存区里是一堆待提交的文件,我们可以批量添加或全部添加进入暂存区中。

git add file_name //添加单个文件 git add . //一次性把全部改动了的文件加入暂存区

已提交:使用git commit 命令可以把暂存区的文件提交到本地仓库里,使文件成为已提交的状态,再提交时并附上对提交文件的信息描述。

git commit -m "description_file" //提交文件并附上描述

查看文件状态:使用git status可以查看当前工作目录文件里的文件状态

git status

撤销修改:如果在修改文件后,想要撤销本次修改,恢复到上次提交的状态,可以使用git check --"file"命令。注意,该操作会直接丢弃为暂存的修改,请谨慎使用。

git checkout --file

取消暂存:如果已经将文件添加到暂存区,但又想取消暂存,可以使用git reset HEAD "file"命令。

git reset HEAD file

三. 分支管理

分支在git的中非常强大,它不影响你主代码的情况下,并行开发新功能,修复bug或进行实验性工作。每个分支都是一个独立的开发路线,你可以在不同的分支上进行不同的修改,然后根据需要将这些分支合并到主分支上。
分支就行是一条岔路,从主路上分出来,你可以在这条岔路上自由探索,不会影响主路的正常通行。 创建分支:使用git branch branch_name 命令创建一个新的分支。

git branch branch_name

切换分支:使用git checkout branch_name 命令可以切换到指定的分支上。

git checkout new_branch

创建并切换分支:可以使用git checkout -b branch_name 命令在创建分支的时候并切换到该分支上,相当于先创建分支,再切换分支。

git checkout -b new_branch

合并分支:当某个分支的开发结束后,可以使用git merge branch_name 命令将该分支合并到当前分支上。例如,要把new_branch分支合并到main分支上,首先要切换到main分支上,然后执行合并操作。

git checkout main git merge new_branch

在合并分支的时候,如果两个分支对同一部分代码进行了不同的修改,可能会导致合并冲突。这时候需要我们手动解决冲突,git会在冲突的文件中标记冲突的部分,你需要根据具体情况修改代码,然后使用git add 和git commit 命令完成合并。 查看分支:使用git branch 命令可以查看当前仓库中的所有分支,其中当前所在的分支前面会有一个* 标记

git branch

删除分支:使用git branch -d branch_name 命令可以删除指定的分支。注意,只有当该分支的修改已经合并到其他分支时,才能使用此命令安全删除分支。如果要强制删除未合并的分支,可以使用git branch -D branch_name 命令,请谨慎使用,以免误删除重要代码。

git branch -d branch_name //删除已合并的分支 git branch -D branch_name //强制删除未合并的分支

四. 远程仓库操作

在多人协作开发或需要在不同设备上同步代码时,远程仓库就显得格外重要。远程仓库可以托管在github,gitee等代码托管平台上,就仿佛像一个共享的大仓库,所有人都有从中获取代码,也可以把自己的代码推送到仓库里。
添加远程仓库:使用git remote add remote_name remote_url 命令可以添加一个远程仓库。remote_name 可以是仓库的别名,而remote_url 是仓库的地址。

git remote add origin url

查看远程仓库:使用git remote -v 命令可以查看已添加的远程仓库和地址。

git remote -v

推送代码到远程仓库:使用git push remote_name branch_name 命令可以将本地分支的代码推送到远程仓库里。

git push origin main

如果是第一次推送分支,可能需要加上--set-upstream 参数,用来设置本地分支与远程分支的跟踪关系,这样以后就可以直接使用git push 和git pull 命令进行推送和拉取了。

git push --set-upstream origin main

从远程仓库中拉起代码:使用git pull remote_name branch_name命令可以从远程仓库拉取代码并合并到本地分支。

git pull origin main

如果在拉取或推送过程中遇到冲突,需要根据具体情况进行解决。例如,如果本地修改与远程修改冲突,可以先保存本地修改(使用git stash命令),然后拉取远程代码,再将保存的修改应用回来(使用git stash pop命令),并手动解决冲突;如果是权限问题,需要检查远程仓库的访问权限,确保自己有相应的读写权限。

结语

以上内容就是和git有关的简单入门级别的操作了,后续还会继续更新git有关的进阶高阶操作。