
没找到合适的图就ai了一个,看起来是不是还挺带感的()
终极省流版
记住三个操作:
——直接上命令代码
1.获取Git仓库
先进入需要存放仓库的文件夹,右击打开git bash
(如果你在安装时配置了环境变量也可以使用windows自带的命令行或powershell)
git clone <对应网址> 2.修改并提交你的贡献
”提交三部曲“:
git add .
git commit -m "你想加的提交信息"
git push第一次提交应输入你的名字和邮箱(最好和GitHub账号一致)
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"然后这样push
git push -u origin main之后便可以正常进行git pull/push操作
3.修改前,让你的仓库和远程仓库同步
git pull 记住这三个操作,你就可以和团队利用git进行最基本的合作了!
正文
什么是Git?
“Git 是一种开源的分布式版本控制系统”
这是Git的官方定义。
实际上,Git只是一种我们处理项目文件的工具,用于工程化的项目合作
什么是工程化?
像定义说的那样,“分布式”的系统不同于我们自己在电脑上写项目或者脚本练习,我们在使用Git无需在同一个仓库修改,每个人都可以获得一份仓库的副本并在自己的副本上修改,之后和他人修改后的版本合并提交到同一仓库上。
Github,Gitee等等都是一些托管平台,负责在远程服务器上保存你的仓库。
还没懂?没事,继续看下去。
为什么要使用Git?
讲一个故事(根据真实事件改编):
在一个开发小组中,A是组长,所有的修改必须要给A做处理,更新他电脑本地的仓库。
A任劳任怨,组员提交的文件他都一丝不苟的合并,一直没有出什么大问题。
突然有一天,A有事暂时离开了。组员们仍然各做各的,做了一天。
第二天,A来到办公室一看,天塌了:他的电脑塞满了其他组员发来的代码。
A 试图把这些代码合进自己的主程序,结果发现:
B改了第 50 行的 Bug,但C在开发新功能时,用的还是B改之前的旧代码,直接把B的修复给覆写了。A擦了擦汗:“算了,我先退回到我走之前的那个最稳版本,重新手工合一遍吧。”
这时,组员 D 悄悄走过来,有些得意地说:“组长,你昨天不在,我发现你电脑没关,怕耽误进度,就直接在你本地那份‘终极版本’里把那个显示 Bug 给改了,顺便清理了一下你那个乱七八糟的目录……”
A有点似了:这意味着再也回退不到他走之前的最新版本了
他想找回前天下午三点那个运行正常的瞬间,却发现自己像是在沙滩上寻找被浪冲走的脚印。
由于 D 随手改掉了几个底层函数名,现在连编译都过不去了,满屏都是红色的报错信息。“只能回到更早的版本重新做了。”A瘫坐在椅子上。
由此空间Git的功能对于软件开发有多重要!
“自动合并”可以免去人工合并的麻烦;
“版本回溯”可以让我们不用时时备份,回溯到任意时刻的状态;
“分支管理”可以更好地厘清分工,让责任追踪更加清晰。
Git 不是一个简单的备份工具,它是程序员的“后悔药”和团队协作的“公证处”。
Git安装
搜索Git官网并下载exe文件,点击安装
设置内容比较重要的是:要把环境变量添加到命令行(command)中,较于bash更易使用;同时如果喜欢用git自带的bash,勾选Git Bash Here,可以右击文件夹直接打开git bash
Git命令
git的命令多种多样,这里我们只介绍基础部分。
首先警告一下(来自StackOverflow):

不要运行你不知道真实含义的命令!!!
1.获取Git仓库
上面说过,无论我们是参加别的项目还是自己创建项目,本地必须先有一个仓库,才能与远程的仓库进行交互。
git init #在当前目录初始化(创建)一个仓库初始化后,你会发现本地有一个隐藏的.git文件夹,这就是你本地仓库的一个标志(删除它就删除了你本地的git仓库和所有历史记录)
当然也可以克隆别人的远程仓库在本地
git clone <仓库地址>值得注意的是,“克隆仓库”和“下载压缩包”是不一样的,下载压缩包并不会在本地建立可交互的仓库。
(同理,直接上传压缩包和文件也不是好的习惯!)
2.文件状态
当你不知道该做什么时,第一步是查看文件状态:
git status

会出现类似这样的提示
Git的四种状态:
对于本地仓库里的文件,有以下四种状态:
- 未跟踪(Untracked)
- 未修改(Unmodified)
- 已修改(Modified)
- 暂存(Staged)
都是字面意思,不多讲述
Git 的三个区域
很多初学者觉得 Git 难用,是因为不理解它的内部运作逻辑。其实,Git 本地的所有操作都在这三个区域之间流动:
- 工作区 (Working Directory):你平时写代码、改文件的文件夹,这是你的“施工现场”。
- 暂存区 (Staging Area):它是你的“检查站”。你改了10个文件,但只想提交其中3个?没问题,把那3个放进暂存区即可。
- 本地仓库 (Repository):这是你的“历史存档库”。一旦 commit,这里的代码就有了版本记录,可以随时回溯。
- 当我们初始建立一个目录,存放文件并
git init时,文件都是不被跟踪的;但git clone的文件由于克隆的是他人用git提交的内容,默认处于未修改,即被跟踪的状态。 - 对于未跟踪的文件,我们使用
git add <name> # 单个文件
git add . # 当前目录全部文件(常用)使其成为暂存状态以添加跟踪。特别地,如果我们想要暂存当前目录的全部文件,可以用用“.”来表示当前目录。
如果想取消跟踪(对于本地目录的任意状态文件),可以
git rm --cached <name> # 取消对文件的追踪,但不删除文件或者,一个更简单和恰当的方法:如果想保存文件,将其移出文件夹;反之,直接删除即可。
- 对于未修改文件,顾名思义,正常修改后即可成为已修改文件。
- 对于已修改的文件,我们也可以用与上面相同的
git add指令使其进入暂存区。 - 对于暂存区的文件,我们可以用
git commit
git commit -m "备注"来提交到本地仓库。
在团队合作中,上传时带有版本号和说明是好习惯!
其实,这就是一个完整的修改-暂存流程了!
那么,让我们来看看如何提交到远程的(即我们常用的Github等托管平台)仓库吧!
3.远程仓库
团队的合作离不开网络交流,以及云上的远程仓库。
首先,检查一下远程仓库状态:
git remote -v如果没有输出,说明你的本地仓库目前和任何远程仓库都没有连接。
之后将本地的仓库和远程仓库连接
git remote add origin <url> # url就是https开头的那个之后正常push即可使用
之前讲过,你需要删除错误提交到远程的文件时:
git rm -r --cached 文件夹名/实际上,这样的”删除“只能移出你本地对这个文件的追踪,但是并不能改变远程仓库上的内容,所以我们需要继续git commit本地的版本,然后git push覆盖远程仓库的版本(是的,这样会留下git commit的记录,所以彻底删除记录需要使用别的方法)
4. 分支管理
对于一个git仓库,本地会默认带一个分支
如果说上面的基础操作让你有了“后悔药”,那分支(Branch)就是你的“沙盒”。
你可能想尝试修改一个功能,但又怕把原本跑得好好的代码改崩了,这时候就是“分支”大显身手的时候。
git branch # 查看你现在有哪些分支
git checkout -b 分支名 # 创建并切换到一个新分支当你在分支里修改完代码,并且确认它完美运行后,你可以切回主分支并把修改合并过来:
git checkout main # 切换回主分支
git merge 分支名 # 把那个分支的修改合并进来这样你就不用担心把原本的代码改坏了。
- 如果需要推送到特定的分支,用
git push origin <分支名>这也恰好解释了开头的命令:
-u是默认设置,origin是本地默认的分支名称,整个过程相当于把origin上的内容push到了远程上的main分支
这样一来命令就很好理解了吧?
5. 冲突(Conflict):别慌,这是 Git 在问你意见
在团队协作中,经常会出现“我和小明同时改了同一个文件的同一行”的情况。这时 Git 就懵了,它不敢自作主张,于是它会报错,并让代码变成“冲突状态”。
当你 git pull 或者 git merge 后看到报错,不要慌:
- 打开那个冲突的文件,你会发现代码里多了奇怪的符号:
<<<<<<< HEAD(这是你本地的代码)=======(分割线)>>>>>>> <远程分支名>(这是别人传上来的代码) - 决定保留谁:手动把这些奇怪的符号删掉,保留你想要的最终逻辑。
- 解决冲突后,重新走一遍流程:
git add . git commit -m "解决冲突"搞定! Tip:为了安全,合并冲突尽量不要在主分支
6. .gitignore
你在项目文件夹里,可能有一些乱七八糟的文件(比如临时配置文件build、打包生成的 node_modules、或是编辑器自动生成的配置),或者你自己的私人配置,密钥文件等,它们不需要或者不能被传到网上,这时除了每次强行rm,更加简单的方法就是使用gitignore。
我们只需在仓库根目录下创建一个名为 .gitignore 的文件,并在里面写上你想忽略的文件名或文件夹名。
例如:
# 忽略所有 txt 文件
*.txt
# 忽略 node_modules 文件夹
node_modules/
# 这里使用了通配符,还有其他很多语法读者可以自行搜寻这样,以后你再 git add . 的时候,Git 就会自动无视这些文件。
注意是上传时忽略,如果已经上传,请参照远程仓库中删除文件的内容
结语
写到这里,你已经掌握了 Git 的核心生存技能:克隆、修改、暂存、提交、推送、拉取、分支、解决冲突。
Git 刚开始会有写难上手,那个黑乎乎的命令行窗口可能会让你感到不安。
但请记住:你只是在管理一堆文本文件,Git 本身不会损坏你的电脑。
此外,本文所述的一些命令也只是常用部分,遇到没有的问题还是需要学会多询问。遇到报错,直接把错误信息复制到Google或ChatGPT问一下,你总能找到答案。
现在,开始你的第一步吧!
git init
催更催更,为什么更新这么慢(大恼)(╯‵□′)╯︵┴─┴
更新啦!
不许备考!