在Linux系统中使用Git进行版本控制,是开发者的必备技能,本文将从安装配置、基础操作到高级协作,详细讲解Git的使用方法,不同Linux发行版的Git安装方式略有差异,以Ubuntu/Debian为例,可通过sudo apt update && sudo apt install git
安装;CentOS/RHEL系统使用sudo yum install git
;Fedora则用sudo dnf install git
,安装完成后,通过git --version
命令验证是否成功,安装完成后,需进行基础配置,包括用户名和邮箱,这些信息会记录在每次提交中,全局配置使用git config --global user.name "Your Name"
和git config --global user.email "your.email@example.com"
,若仅对当前仓库生效,可去掉--global
参数,还可配置默认编辑器(如git config --global core.editor vim
)和行尾符处理(git config --global core.autocrlf input
,避免Windows/Linux换行符差异问题)。
Git仓库操作是版本控制的基础,创建本地仓库有两种方式:一是在现有目录初始化,通过git init
命令,该目录会生成一个隐藏的.git
文件夹,用于存储版本信息;二是克隆远程仓库,使用git clone <仓库URL>
,例如git clone https://github.com/username/repo.git
,会在当前目录下载整个仓库及历史记录,克隆后,进入仓库目录(cd repo
),即可开始操作。
文件操作是日常开发中最频繁的步骤,首先通过git status
查看工作区状态,红色表示未跟踪或修改的文件,绿色表示已暂存的文件,使用git add <文件名>
将文件添加到暂存区,支持通配符,如git add .
添加所有修改,暂存后,通过git commit -m "提交信息"
将暂存区内容提交到版本库,每次提交都会生成唯一哈希值,查看提交历史可用git log
,git log --oneline --graph
可简化显示并展示分支合并关系,若需撤销操作,git reset --hard HEAD^
可回退到上一个提交(HEAD
指向当前提交,^
表示上一个),git checkout -- <文件名>
可丢弃工作区的修改(恢复到最近提交状态)。git diff
可查看工作区与暂存区的差异,git diff --staged
查看暂存区与版本库的差异。
分支管理是Git的核心功能,支持并行开发,创建分支使用git branch <分支名>
,例如git branch feature
;切换分支用git checkout <分支名>
,git checkout -b <分支名>
可同时创建并切换,合并分支时,先切换到目标分支(如master
),再执行git merge <源分支名>
,Git会尝试快进合并(若分支无分歧)或生成合并提交,删除已合并的分支用git branch -d <分支名>
,强制删除未合并的分支用git branch -D <分支名>
,分支策略上,常用master
作为主分支(稳定版本),develop
作为开发分支,feature/*
作为功能分支,release/*
作为发布分支,确保流程清晰。
远程仓库协作方面,GitHub、Gitee等平台是常用选择,首先通过git remote add origin <远程仓库URL>
添加远程仓库(默认仓库名为origin
),推送本地分支到远程使用git push -u origin <分支名>
(-u
设置上游分支,后续推送可简化为git push
),拉取远程更新用git pull origin <分支名>
,相当于git fetch
(获取远程更新)+ git merge
(合并到当前分支),若需查看远程仓库信息,git remote -v
可显示远程仓库名和URL,多人协作时,注意先拉取最新代码再推送,避免冲突;若冲突发生,需手动修改冲突文件(标记为<<<<<<<
、、>>>>>>>
),执行git add
和git commit
完成合并。
忽略文件方面,通过创建.gitignore
文件(可使用git config --global core.excludesfile ~/.gitignore_global
设置全局忽略规则),指定不需要Git管理的文件或目录,如日志文件(*.log
)、临时文件(*.tmp
)、依赖包(node_modules/
)等,避免误提交。
发行版 | 安装命令 |
---|---|
Ubuntu/Debian | sudo apt update && sudo apt install git |
CentOS/RHEL | sudo yum install git |
Fedora | sudo dnf install git |
FAQs:
-
Git中如何解决合并冲突?
当两个分支对同一文件的同一部分修改时,合并会产生冲突,解决步骤:① 执行git merge <分支名>
后,Git会标记冲突文件;② 手动打开冲突文件,删除<<<<<<<
、、>>>>>>>
标记,保留需要的代码;③ 执行git add <文件名>
标记冲突已解决;④ 执行git commit
完成合并提交。 -
如何撤销已提交的代码?
根据场景选择不同方法:① 若提交未推送到远程,使用git reset --hard HEAD^
回退到上一个提交(会丢弃工作区修改),或git reset --soft HEAD^
仅撤销提交(保留修改在暂存区);② 若已推送,需创建反向提交:git revert <提交哈希>
,生成新提交撤销修改,不影响历史记录;③ 若需彻底删除提交(不推荐),使用git reset --hard HEAD~n
(n为回退步数)后强制推送git push -f origin <分支名>
(需确保无其他人基于该分支开发)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/20678.html