专业编程基础技术教程

网站首页 > 基础教程 正文

从入门到精通:Git命令的全方位指南,程序员必备基础!

ccvgpt 2024-07-19 13:01:12 基础教程 5 ℃

一、简介

Git是一款强大的分布式版本控制系统,适用于各种规模的项目。由Linus Torvalds创建,旨在更好地管理Linux内核开发。它具备以下优势:

从入门到精通:Git命令的全方位指南,程序员必备基础!

二、优势

  • 版本控制: Git提供完整的版本控制功能,确保代码的完整性和可追溯性。
  • 多人协同开发:适合团队开发,方便多个开发者同时在一个项目上工作,大大提高协同效率。
  • 强调个体: Git鼓励个体贡献,使每位开发者都能更容易地分享和整合各自的工作。
  • 速度快、灵活: Git具有快速和灵活的特性,便于开发者之间解决冲突,提高工作效率。
  • 分布式开发: 特别适合分布式团队开发,减轻公共服务器压力,确保数据安全。

新手建议先熟悉Git的基本知识和常用命令,再使用图形用户界面(GUI)工具。这有助于深入理解Git的工作原理,并在使用GUI工具时更加熟练。

三、最基本流程

workspace工作区:代码变更的场所,也是项目文件的集中地。
staging area暂存区:执行git add后,工作区的文件被移至此区域。此区标记了哪些内容受到Git管理。
local repository本地仓库:提交新版本的场所。git commit后,新版本存入本地仓库。
remote repository远程仓库:如gitee、github、gitlab等代码托管平台,或个人搭建的git私服。通过git push,代码同步至远程仓库。

主要流程

1.使用git clone命令,从远程仓库克隆文件至本地仓库。

2.将修改或新增的文件加入暂存区。

3.将暂存区内容提交至本地仓库。

4.将本地仓库内容推送至远程仓库。

四、代码仓库

(一)创建仓库

1.进入需要创建代码库的文件夹

cd 文件路径

2.创建/切始化仓库

git init

3.关联远程仓库

git remote add origin 远程仓库URL

(二)拉取远程仓库到本地

或者直接克隆远程的仓库,更简单方便。

git clone <远程仓库URL>

(三)添加文件到仓库

1.查看工作状态

git status

2.添加文件到暂存区

①添加单个文件:

git add 文件名

②添加所有文件:

git add .

③会忽略的文件:.gitignore中指定的文件会被忽路、空目录

3.提交到本地仓库

git commit

#我的电脑是Windows,此时进入了一个文本编辑器(vim)
#使用CTRL+C,输入i,进入插入模式
#使用CTRL+C,输入:wq,保存退出

当你在Windows系统上,使用文本编辑器(例如Vim)时,可以通过以下步骤进行Git提交:

1.按下CTRL+C,切换到插入模式。

2.输入:wq,保存并退出编辑器。

当然,为了提高效率和便捷性,你也可以选择使用git commit -m "commit message"的简短方式进行提交。不过,为确保代码审查的清晰度和团队协作的高效性,建议遵循一定的提交信息规范。

另外,使用git commit -m"commit message"虽然方便,但可能会带来一些问题:

1.提交信息可能过于简单:过于简短的提交信息可能导致其他开发者难以理解本次提交的目的和内容。

2.无法处理复杂的提交信息:如果提交信息需要多行或包含更复杂的格式(如列表、引用等),-m参数可能无法满足需求。

3.可能会忽略未跟踪的文件:git commit -m"commit message"只会提交已添加到暂存区的文件。如果新修改了未添加到暂存区的文件,这些文件将不会被提交。

(四)对比工作区文件变化

git diff 推荐将Beyond Compare设为默认的diff工具,以处理diff和merge冲突。

(五)仓库配置

1.配置全局用户名和邮箱

git config --global user.name "name"
git config --global user.email "email address"

如为个人使用,可按上述方式配置。若用于公共编译环境,则不建议如此配置。

2.配当前仓库用户名和邮箱git config user.name "name"
git config user.email "email address"

3.查看Git全局配置

git config --global -l

五、代码版本/提交切换

注:这里的版本均为本地仓库版本。

一)查看过去版本/提交

1.提交的详情git log

2.提交的简介

git log --pretty=oneline

(二)回退版本/提交

1.回退到当前最新提交

git reset --hard HEAD


2.回退到上次提交

git reset --hard HEAD^

3.回退到上n次提交

git reset --hard HEAD~n

4.回退到某次提交

git reset --hard commit_id
# 可通过git log获取id

三)重返未来版本

1.查看历史提交以及被回退的提交

git reflog

注:该记录有时限,且只在本地。

2.回到未来版本

git reset --hard commit_id

四)撤销修改

1.工作区文件撤销

当文件未被提交到暂存区时(即尚未执行git add命令),你可以使用git checkout 文件名撤销对该文件的修改。

git checkout 文件名

2.暂存区文件撤销

①要将暂存区的文件撤销到工作区,你可使用git reset HEAD 文件名命令。确保不添加--hard参数,这样只会将暂存区的更改撤销,而不会影响工作区的文件。

git reset HEAD 文件名

②若撤销暂存区的文件,请使用git checkout 文件名命令。这将撤销对该文件的所有修改。

git checkout 文件名

3.提交到了版本库

参见回退版本/提交

五)删除文件

1.从版本库删文件

git rm 文件名

修改后需要提交

2.恢复删除

参考撤销修改

3.从版本库中删除文件,但是本地不删除该文件

git rm --cached 文件名

六)暂存修改

参照分支-暂存修改

七)忽略文件

通过git仓库下的.gitignore文件屏蔽某些中间文件/生成文件

八)分支

1.创建分支

①仅创建:

git branch 分支名

②创建并切换:

git checkout -b 分支名

在本地仓库操作,创建的都是本地分支。

2.切换分支

git checkout 分支名

3.合并分支

①合并某分支到当前分支:

git merge <要合并的分支>

②禁用 Fast-forward 模式:

git merge --no-ff

③变基:

用于重新应用一系列提交到另一个分支上。

git rebase <要提取提交的分支>

4.删除分支

①删除本地分支

删除未合并分支:

git branch -D 分支名

删除已合并分支:

git branch -d 分支名

②删除远程分支

git push origin -d 分支名

也可以在界面操作。

5.查看分支

①查看当前分支:

git branch

②查看所有分支消息:

git branch -a

6.合并分支,解决分支冲突

git log --graph
git log --graph --pretty=oneline --abbrev-commit
  • 确保要合并的分支已更新至最新版本。
  • 切换至主分支。
  • 执行合并操作。
  • 解决合并过程中的冲突。
  • 将更改提交至版本库。
  • 合并成功完成。
  • 使用git log --graph命令查看分支状态。
  • 使用git log --graph --pretty=oneline --abbrev-commit命令以简洁格式查看提交历史记录。

六、开发完需要提交PR/MR

通过PR/MR来合并开发分支与主分支。

(一)暂存修改

1.暂存工作现场

git stash

2.恢复工作现场

①恢复

git stash apply

②删除

git stash drop

③恢复+删除

git stash pop

(二)多人协作

1.查看远程库信息

#详细
git remote -v

#不详细
git remote

2.更新/推送远程库

①更新远程库信息

git fetch

②将远程库最新修改更新到本地

git pull

#或
git fetch + git merge

③将本地修改推送到远程仓库

git push

git push origin 分支名

3.本地分支与远程分支交互

①使用远程分支A创建本地分支

git checkout -b A origin/A 
#origin是远程仓库名,若名字一样origin/A可以省略

将本地分支与远程分支作关联

git branch --set-upstream-to=origin/remote_branch  your_branch

#或
git checkout your_branch
git branch -u origin/remote_branch

七、误区

(一)在每次代码提交时,仅提交本次代码的变更和修改的文件。为确保代码同步并提交新修改,建议先在本地暂存文件,然后进行远程代码仓库的变基操作,再取出暂存文件,最后提交新提交并推送到远程仓库。

(二)在切换分支时,未暂存或已暂存的文件不会被保留在原分支,而是会一并转移新分支。

最近发表
标签列表