从此对 Git 了然于胸
git
一、清白 Git / Github
Git 是 Linux 之父为了解决 Linux 混乱的代码管理被迫开发出来的,真牛!
Git 是当前最先进、最主流的分布式版本控制系统且免费、开源!可以帮你保存文件的所有修改记录、并使用版本号进行区分。你也可以随时通过指令浏览历史版本、还原被修改的文件到指定版本,也可以对比不同版本文件之间的差异、防止旧版本覆盖新版本等功能。这些功能就算对一个非程序员来说,利用它来管理自己电脑上的部分文件也是十分有优势的。
同时,git 支持跨区域多人协作编辑,不仅是个人管理代码的利器,更是团队项目开发的首选,所以熟练使用 git 也就成了程序员群体必备的一项技能。
而 Github 是一个主流的代码托管平台,大家可以将它理解成一个存储代码的 “网盘” ,大家可以将自己的代码传上去进行共享和维护,同样也可以从 github 上下载代码供自己使用和学习。简单的理解,Git 是个代码管理的工具,而 Github 是一个存储代码的平台。因此,两者没有必然的联系。
二、Git 原理
在 Git 中有四个概念:
- 1,远程仓库(remote repository):就是我们 Git 的服务器,用来存储团队或我们个人的代码。
- 2,本地仓库(local repository):将远程仓库中的代码克隆到本地仓库后,这时,我们就相当于有了一个和远程仓库内容几乎一样的本地仓库了,对仓库内容的所有操作都可以在本地离线完成,只需要等到需要的时候和远程服务进行交互即可。
- 3,暂存区(index):就是文件暂时存放的地方。随着一个 commit 命令,所有暂存区中暂时存放的文件都被提交到本地仓库(local repository),此时本地仓库里面的文件又完全被暂存区所取代。暂存区是 git 架构很重要且难理解的一部分,这里不再深究。
- 4,工作区(workspace):我们当前在本地文件夹看到的文件结构就是我们的工作区间。初始化工作区间或者工作区间 clean 的时候,文件内容和暂存区( index)是一致的。但是随着对文件的修改,当我们工作区的文件在没有 add 到暂存区的时候,工作区和暂存区是不一致的。这点应该不难理解。
三、Git 基础操作
1、配置 Git
配置全局用户
$ git config --global user.name "用户名"
$ git config --global user.email "git账号"
删除全局配置
$ git config --global --unset alias.xxx
$ git config --global --unset user.xxx
2、查看 Git 信息
下面看几个常见的信息查询指令:
#查看系统配置
$ git config --list
#查看用户配置
$ cat ~/ .gitconfig
#查看当前项目的 git 配置
$ cat .git/config
#查看暂存区的文件
$ git ls-files
#查看本地 git 的历史命令
$ git reflog
#查看所有 git 命令
$ git --help -a
#查看当前 HEAD 指向
$ cat .git/HEAD
3、Git 常用指令
1、add (将工作区的文件添加到暂存区)
#添加指定文件到暂存区
$ git add [file1] [file2] ...
#添加指定目录到暂存区,包括子目录
$ git add [dir]
#添加当前目录的所有文件到暂存区(追踪所有新增的文件)
$ git add .
2、status
#查看工作区和暂存区的状态
$ git status
3、commit
#将暂存区的文件提交到本地仓库并添加提交说明
$ git commit -m "本次提交的说明"
4、push
push 操作就是将本地的文件推送到远程分支。分支推送顺序的写法是 < 来源地 > : < 目的地 >。如果远程仓库没有这个分支,会新建一个同名的远程分支。如果省略远程分支名,则表示两者同名。具体例子如下:
$ git push <远程主机名> <本地分支名>:<远程分支名>
$ git push origin branchname
#不管是否存在对应的远程分支,都要将本地的所有分支推送到远程主机
$ git push --all origin
5、pull
#拉取所有远程分支到本地镜像仓库中
$ git pull
#拉取并合并项目其他分支
$ git pull origin branchname
6、branch
#查看本地分支
$ git branch
#查看远程分支
$ git branch -r
#查看所有分支
$ git branch -a
#查看所有分支及最新的提交信息
$ git branch -av
#查看本地分支对应的远程分支
$ git branch -vv
7、rm
#删除暂存区和工作区文件
$ git rm filename
#只删除暂存区的文件,不会删除工作区的文件
$ git rm --cached filename
8、checkout
#恢复暂存区的指定文件到工作区
$ git checkout <filename>
#恢复暂存区的所有文件到工作区
$ git checkout .
#切换分支,也可以看成是回到项目当前状态的方式
$ git checkout <当前你正在使用的分支>
4、新建一个 Git 项目
新建一个 Git 项目通常有以下两种方式:
1、本地新建好 Git 项目,然后关联远程仓库
#初始化一个 Git 仓库
$ git init
#关联远程仓库
$ git remote add <name> <git-repo-url>
#例如:
$ git remote add origin https://github.com/xxxxx
2、clone 远程仓库
#前提是新建好远程仓库,然后 clone 到本地
$ git clone <git-repo-url>
#将远程仓库下载到指定文件夹(当前 git bash 启动位置下),如果没有会自动生成
$ git clone <git-repo-url> <project-name>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)