Git入门

没找到合适的图就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 本地的所有操作都在这三个区域之间流动:

  1. 工作区 (Working Directory):你平时写代码、改文件的文件夹,这是你的“施工现场”。
  2. 暂存区 (Staging Area):它是你的“检查站”。你改了10个文件,但只想提交其中3个?没问题,把那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 后看到报错,不要慌:

  1. 打开那个冲突的文件,你会发现代码里多了奇怪的符号:
    <<<<<<< HEAD (这是你本地的代码)
    ======= (分割线)
    >>>>>>> <远程分支名> (这是别人传上来的代码)
  2. 决定保留谁:手动把这些奇怪的符号删掉,保留你想要的最终逻辑。
  3. 解决冲突后,重新走一遍流程: 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

评论

  1. Y_z
    3 月前
    2026-1-05 14:18:42

    催更催更,为什么更新这么慢(大恼)(╯‵□′)╯︵┴─┴

    • 博主
      Y_z
      4 周前
      2026-3-14 23:01:56

      更新啦!

  2. Y_z
    3 月前
    2026-1-07 18:45:38

    不许备考!

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇