github基础入门及git安装配置

一、github与git的关系与区别

1.1 区别

1.1.1 github

是云端服务,用来存放 Git 仓库

提供网页界面、协作、权限、社区

必须联网

1.1.2 git

是本地版本控制软件(命令行 / 桌面工具)

记录代码历史、分支、合并

不需要联网也能用

1.2 联系

GitHub 底层使用 Git

你在本地用 Git 写代码 → push 到 GitHub

GitHub 让 Git 从 "本地" 变成 "云端 + 协作"

二、github注册

由于登录github需要"翻墙",这里推荐一个免费的工具箱:Watt tookit。下载安装后,加速github即可进入github。

官方登录页: https://github.com/login

注册页:Sign up for GitHub · GitHubSign up for GitHub · GitHubSign up for GitHub · GitHub

只需要一个邮箱就可以注册,QQ邮箱,网易邮箱,谷歌邮箱。苹果账号等都可以。

三、git安装与配置

下载地址(windows版本):Git - Windows 安装

mac版本,linux版本可以通过如下示例切换:

3.1 git安装流程

每次选择如红框所示,具体流程如下:每次都选择next即可

3.2 gitbash的常用命令

git init 初始化 git,只有初始化了以后才可以使用 git 相关命令。

git clone 获取远程项目,并下载到本地。远程库的地址在 GITHUB 项目中会有提供。

git status 查看本地修改与服务器的差异。

git add . 将这些差异文件添加,这样就可以提交了。

git commit --m "这里是注释" 提交更改到服务器。

git checkout master 更改到master库。

git pull 将服务器最新的更改获取到本地。

git merge local master 将本地的local合并到远程的master上。

git push origin master 正式提交到远程的master服务器上。

3.3 git的基础配置------用户名和邮箱

3.3.1 全局配置

直接打开git bash

输入以下命令:

bash 复制代码
# 配置用户名(替换成你的,比如 "zhangsan123")
git config --global user.name "Your GitHub Username"

# 配置邮箱(替换成你的,比如 "zhangsan@xxx.com")
git config --global user.email "Your GitHub Email"

通过以下命令即可查看是否全局配置完成:

bash 复制代码
# 全局配置查看
git config --list
# 或者
git config -l

3.3.2 局部配置用户名和邮箱

输入以下命令:

首先要cd进入你想要为配置的某个项目中

bash 复制代码
# 进入具体的项目路径下cd /path/to/your/project

# 配置用户名(替换成你的,比如 "zhangsan123")
git config user.name "Your GitHub Username"

# 配置邮箱(替换成你的,比如 "zhangsan@xxx.com")
git config user.email "Your GitHub Email"

通过以下命令即可查看是否局部配置完成:

需要cd进入目录后

bash 复制代码
# 查看当前仓库的局部配置(进入仓库目录后执行)
git config --local --list

3.3.3 一些可选配置

bash 复制代码
# 开启彩色输出
git config --global color.ui auto
# 扩大缓冲区
git config --global http.postBuffer 524288000
# 配置换行符规则
git config --global core.autocrlf true
# 配置简写 和linux在bashrc中配置别名一样
git config --global alias.st status       # git st 替代 git status
git config --global alias.br branch       # git br 替代 git branch

3.3.4 清空配置及修改配置

清空配置命令如下:

bash 复制代码
git config --global --unset user.email

修改配置:重新输入你想要修改的配置的命令覆盖即可

四、git本地仓库管理与使用

Git的本质是对版本进行控制,也就是对文件的版本进行控制,使用Git对文件进行修改、或者提交等操作时,需要知道文件当前处于什么状态,不然可能会出现提交了现在不想提交的文件,或者要提交的文件却没有提交上,在Git中文件分为以下状态:

bash 复制代码
"Untracked":文件未跟踪;此文件在文件夹中,但并没有加入git库,不参与版本控制。
"Unmodify":文件已入库,并且未修改;即版本库中的文件内容与文件夹中完全一致。
"Modified":文件已修改;仅仅是修改,并没有进行其它操作。
"Staged":文件已暂存;并没有同步到本地版本库中。
"Committed":文件已提交;已提交到本地版本库,受到版本控制。

查看状态的命令如下:

bash 复制代码
git status

**1、接下来创建本地仓库,首先需要初始化仓库,**命令如下:

bash 复制代码
git init

同时打开此文件会发现创建了一个.git文件,.git就是我们上面提到的Git管理空间;同时,在命令行最后多了一个 "main" (因为我们在安装的时候选择的是使用main作为新仓库的分支名称的),这代表目前处于仓库的 "main" 分支,这个指向的分支也可以通过 .git 文件夹中的HEAD查看,用记事本打开HEAD,

2、创建.gitignore文件,用于忽略一些不需要追踪或上传的文件

使用如下命令:

bash 复制代码
touch .gitignore

或者直接在pycharm中创建一个.gitignore文件:

3、提交暂存区的文件到本地仓库(-m 后是提交说明,必填,写清楚这次提交的内容)

命令如下:

bash 复制代码
git commit -m "first commit "

4、查看本地仓库的提交日志

命令如下:

bash 复制代码
git log

五、git本地与远程仓库的交互

5.1 ssh的配置

1、首先检查是否已有 SSH 密钥

bash 复制代码
ls -al ~/.ssh

2、生成新的ssh密钥

执行下面的命令,把邮箱换成你 GitHub 注册的邮箱

bash 复制代码
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 或者 这个格式
ssh-keygen -t ed25519 -C "your_email@example.com"

执行后终端会出现提示,全程按「回车」即可,不用输入任何内容:

第一步提示「Enter file in which to save the key」:回车(用默认路径);

第二步提示「Enter passphrase」:回车(设置密码的话每次用 SSH 都要输,新手直接免密);

第三步提示「Enter same passphrase again」:再回车。

私钥:~/.ssh/id_rsa或者~/.ssh/id_ed25519(绝对不能泄露!泄露后私钥会失效);

公钥:~/.ssh/id_rsa.pub或者~/.ssh/id_ed25519.pub(等下要复制到 GitHub)。

3、启动ssh代理

bash 复制代码
# 启动 SSH 代理
eval "$(ssh-agent -s)"

# 将私钥添加到代理中
ssh-add ~/.ssh/id_rsa
	or
ssh-add ~/.ssh/id_ed25519

4、把公钥复制到 GitHub

下面的命令是将公钥复制到剪贴板,后续在github中配置时,可以直接粘贴。

bash 复制代码
# Windows (git bash)
clip < ~/.ssh/id_rsa.pub
or
clip < ~/.ssh/id_ed25519.pub

# Linux 
xclip -sel clip < ~/.ssh/id_rsa.pub
or
xclip -sel clip < ~/.ssh/id_ed25519.pub

# macos 
pbcopy < ~/.ssh/id_rsa.pub
or
pbcopy < ~/.ssh/id_ed25519.pub

5、登录 GitHub 粘贴公钥

步骤:

点击右上角的头像 → 选择「Settings」(设置)

在左侧菜单栏找到「SSH and GPG keys」(SSH 和 GPG 密钥);

点击右上角的「New SSH key」(新建 SSH 密钥);

填信息:

Title:随便填(比如「我的笔记本电脑」,方便识别是哪台设备);

Key type:默认「Authentication Key」就行;

Key:把刚才复制的公钥内容粘贴进去(直接 Ctrl+V);

点击「Add SSH key」(添加 SSH 密钥)弹出验证密码的提示,输入你的 GitHub 密码,确认即可。

6、验证 SSH 是否配置成功

bash 复制代码
ssh -T git@github.com

5.2 将本地仓库上传至github远程仓库

1、在 GitHub 上创建一个空的远程仓库

这一步是给你的项目在 GitHub 上 "建个空文件夹",用来接收本地代码:

  1. 打开 GitHub 官网,点击右上角「+」号 → 选择「New repository」(新建仓库);

  2. 填写仓库信息:

Repository name:仓库名(必须和本地项目文件夹名一致,比如 my-project,方便识别);

Description(可选):项目描述(比如「我的第一个 Python 项目」);

Visibility:选「Public」(公开)或「Private」

重点:不要勾选「Add a README file」「Add .gitignore」「Choose a license」(这些会导致远程仓库非空,后续推送冲突);

3.点击「Create repository」(创建仓库)。

创建完成后,GitHub 会跳转到仓库页面,显示仓库的 SSH 地址(比如 git@github.com:你的用户名/my-project.git),先复制这个地址

2、关联本地仓库和 GitHub 远程仓库

bash 复制代码
# 添加远程仓库(origin 是远程仓库的别名,默认用 origin 即可,不用改)
# 替换成你刚复制的 GitHub SSH 地址
git remote add origin git@github.com:PLAYEROFMYLIFE/learngit.git

# 验证是否关联成功(可选)
git remote -v

3、将本地代码推送到 GitHub

bash 复制代码
# 把本地 main 分支推送到 origin(远程仓库)的 main 分支
# -u 是绑定默认推送分支,后续只需 git push 即可,不用重复写分支名
git push --set-upstream origin main

5.3 打开github仓库,克隆仓库到本地

bash 复制代码
# 改成具体名字
git clone git@github.com:PLAYEROFMYLIFE/learngit.git

六、分支

6.1 概念与作用

分支能让你在不影响主代码的前提下,独立开发新功能、修复 Bug,最后再把改动合并回去。

分支概念:

假设你在写一篇论文(对应「主分支 main」):

你想加一个新章节,但又怕写砸了影响已完成的内容 → 复制一份论文,在副本上写新章节(这就是「新建分支 feature - 新章节」);

写新章节时,发现原论文有个错别字 → 切回原论文改错别字(「切回 main 分支修复 Bug」);

新章节写完且没问题 → 把副本的内容合并回原论文(「合并 feature 分支到 main 分支」)。

Git 分支的本质就是:对代码库的一份 "独立快照",分支之间互不干扰,你可以在任意分支上修改代码,不会影响其他分支。

6.2 常用分支介绍

6.3 分支的核心操作命令

bash 复制代码
# 1. 查看所有分支(* 表示当前所在分支)
git branch

# 2. 新建分支(比如新建 feature-login 分支)
git branch feature/login

# 3. 切换到新建的分支
git checkout/switch feature-login

# 简写(新建+切换一步到位,最常用)
git checkout -b feature-login
or
git switch -c feature-login

# 4. 把 feature-login 分支合并到 main 分支(先切回 main)
git checkout/switch main
git merge feature-login

# 5. 删除已合并的分支(开发完成后清理)
git branch -d feature-login

七、合并冲突

什么时候会触发合并冲突

冲突的核心原因是:两个不同的分支,修改了同一个文件的同一行 / 同一部分代码,Git 不知道该保留哪一个版本,只能暂停合并,等你手动决策

常见场景

场景 1:多人改同一文件

你在 feature-login 分支改了 user.js 的第 10 行;

同事在 main 分支也改了 user.js 的第 10 行;

你把 feature-login 合并到 main 时,触发冲突。

场景 2:自己在不同分支改同一文件

你在 feature-pay 分支改了 config.js 的配置;

又在 bugfix-pay 分支改了 config.js 同一处配置;

合并两个分支时触发冲突。

场景 3:分支长期未合并,主分支已更新

你的 feature 分支基于 1 个月前的 main 分支创建;

期间 main 分支的核心文件已被多次修改;

你合并时,大量文件因内容差异触发冲突。

示例:

在主分支(默认:main)下有test.py文件,内容如下;

接下来提交代码到main分支

bash 复制代码
# 1. 添加文件到暂存区
git add test.py

# 2. 提交代码(第一次提交)
git commit -m "初始化:添加加法函数"

接下来创建另一个分支,并修改代码

bash 复制代码
git checkout -b feature-add-tax
bash 复制代码
# calculator.py - feature 分支版本
def add(a, b):
    """计算两个数的和(含10%税费)"""
    result = (a + b) * 1.1  # 核心修改:加了税费计算
    return result

# 测试代码
if __name__ == "__main__":
    print("计算结果(含税费):", add(10, 20))

接下来切换回main分支,并修改test.py

python 复制代码
git checkout/switch main
python 复制代码
# calculator.py - main 分支版本
def add(a, b):
    """计算两个数的和(四舍五入)"""
    result = round(a + b, 2)  # 核心修改:四舍五入,和 feature 分支冲突
    return result

# 测试代码
if __name__ == "__main__":
    print("计算结果(四舍五入):", add(10, 20))

提交对main分支的修改

最后合并分支,此时会触发冲突(现在尝试把 feature 分支合并到 main 分支,因为两个分支修改了 test.py 的同一行(result = ...),会直接触发冲突: )

python 复制代码
git merge feature-add-tax

解决方案:

在本地修改冲突文件,删除标记,合并逻辑:

python 复制代码
def add(a, b):
    """计算两个数的和(含10%税费+四舍五入)"""
    result = round((a + b) * 1.1, 2)  # 融合两个分支的逻辑
    return result

# 测试代码
if __name__ == "__main__":
    print("计算结果(含税费+四舍五入):", add(10, 20))  # 预期输出:33.0
相关推荐
万琛2 小时前
【 GitHub GraphQL 】查询优化
github·graphql
疯狂成瘾者2 小时前
git fetch如何使用:
git
Java_2017_csdn2 小时前
‌IntelliJ IDEA 2026.1 中 Git、GitHub、GitLab 功能对比与实操指南
git·github·intellij-idea
本地化文档2 小时前
rustup-book-l10n
rust·github·gitcode
瑞瑞小同学12 小时前
git 常用相关操作
git
金銀銅鐵12 小时前
[git] 如何合并若干个 commit?(上)
git
洛菡夕16 小时前
NoSQL之Redis配置与优化
redis·git·nosql
wohehe17 小时前
Android项目工程化-Github Actions
linux·github
Yunzenn17 小时前
CRAG 架构与置信度路由
github