跳过正文
  1. 学习笔记/
  2. Docs/
  3. Git/

·2 分钟·
lyrumu
作者
lyrumu
目录

Git安装
#

首先cmd打开终端输入

1where git

判断一下系统有无安装git 没有的话去官网安装即可 Redirecting… 安装过程还挺麻烦的 可以一步步问AI该选择哪些选项……


网站选择
#

首选Github 也可以先用国内的Gitee练手


仓库创建
#

以下操作在github/gitee内进行.

  • 初始化仓库: (1)选择语言: 按需或不选,主要是给仓库打上一个“主要编程语言”的标签 (2)添加.gitigore: 一般推荐添加,用于告诉git哪些文件不需要管理 (3)添加开源许可证: 一般选择MIT-license(开源) (以上内容后期应该都是可以再添加的,可以先不选)
  • 设置模板: (1)readme文件: 仓库的门面和说明书,按需选择,后期可再添加 (2)issue模板文件: 便于别人给你的仓库提交bug或功能建议 (3)pull request模板文件: 当别人想为你贡献代码时用这个模板来请求
  • 选择模型分支: 可以先默认选择“main”或“master”分支

本地文件上传
#

本地已有仓库 将其上传github 利于备份和版本管理;

适合个人项目;

即先本地建立文件 再上传; 不过一般是先创建仓库再clone到本地进行开发; 注:选择本地已有的文件上传时 新建仓库不要勾选readme和license 因为会导致仓库和本地的初始化内容不统一; 如果已经勾选了 建议之后使用强制推送,使用本地内容覆盖仓库;

 1#首先在github新建仓库
 2#再在文件资源管理器中进入所需上传的文件
 3#然后右键文件空余处,点击在终端中打开
 4#然后确保终端中显示的目录就是当前想要上传的文件,then:
 5git init
 6#个人开发者的话可以用global全局设置 即所有项目用同一个身份
 7git config user.name "你的用户名"
 8git config user.email "你的邮箱@example.com"
 9#以下具体内容在gitee中复制即可
10git remote add origin https://gitee.com/你的用户名/仓库名.git
11#上传
12git add .
13git commit -m "初始提交:上传项目文件"
14git push -u origin master -f #"强制推送(只在个人仓库初始化时使用)"
15#注意,上传github最好别用master分支,要用main
16#git push --force-with-lease适合多人开发时使用,防止覆盖他人提交

push前最好git branch查看当前所在分支以及所有本地分支,避免推送到其他分支上,当前所在分支会在前面显示*符号 如果分支不匹配,用git branch -M main移动到正确分支上 关于获取自己github邮箱: 点击头像->settings->email; 后续在本地编辑更新完项目后 再更新上传到git:

1git add .
2git commit -m "更新内容给介绍"
3git push

后期git配置状态检查:

1git config --list
2#或者
3git config --global --list

同步本地和仓库
#

首先进入本地对应文件 在此打开终端:

1git fetch origin#获取远程最新状态(安全,不合并本地文件)
2git status#查看本地与远程差异
3git diff#查看具体文件内容差异

git status后的几种可能状态:

  • up to date with 'origin/master'—已同步,无需操作
  • behind 'origin/master' by X commit—本地落后,执行git pull
  • ahead of 'origin/master' by X commit—本地领先,执行git push

GitCommit优化
#

通常每次 git commit 只能有一个提交信息,这个信息会附加到整个提交上,而不是单个文件夹或文件上,以下尝试优化

  • 推荐办法: 每次想要提交前,先git status;(也可结合git diff) 查看当前哪些文件需要被提交; 然后依次:

    1git add filename1/
    2git commmit -m "该文件的修改内容"
    3git add filename2/
    4git commit -m "该文件修改内容"
    5#最后统一进行git push
    6git push origin
    7#这样就能在github上看到对每个文件不同的提交信息了

.Gitignore
#

被gitignore的文件,在本地依然会随着修改而变化,但每次提交不会被上传到github,即只在本地变化;

  • 创建.gitignore文件: 在根目录右键新建文本文件-将整个文件重命名为.gitignore(后缀也要一起删掉!) 在文件内写入需要忽略的文件的路径,比如.obsidian/workspace.json,这样该文件就会被忽略,不会被同步到仓库;

检查:

1#输入
2ls .gitignore*
3#理想输出类似
4Mode                 LastWriteTime         Length Name
5----                 -------------         ------ ----
6-a----         2026/4/18     13:36            109 .gitignore
7#若输出文件名显示".gitignore.txt" 那是不正确的
  • 使用.gitignore: 先提交更新后的.gitignore文件至github; 然后通过git status检查是否有已经被GIT跟踪但是需要ignore的文件;

⚠️.gitignore 只能忽略未被跟踪的文件,如果文件已经被 Git 跟踪过,需要先 git rm --cached 再忽略;

所以如果有,通过git rm --cached config/secret.json让git忽略这个文文件,之后就可以正常add-commit-push了;


Git多分支page部署
#

添加.github/workflow/deploy/yml文件(创建github Actions) 修改仓库page部署分支为gh-pages


多平台同步
#

首先进入本地需要同步的文件夹,右键在终端中打开; (后续操作均需在此环境下进行)

1git remote -v#查看当前文件夹关联的所有远程仓库

需要将同一本地文件同步到不同远程仓库时,建议使用相同的仓库名(仓库名即为-v后显示的“仓库名.git”)在平台先建立相同名称的仓库,不要设置readme等文件; 以下以已经同步到gitee的文件,再同步到github为例:

1git remote add github https://github.com/用户名/仓库名.git

然后根据分支名推送:

1git push github master

最后再用git remote -v检查一下,应该会多出origin之外的仓库;

多平台同步
后续更新时,用以下命令推送到两个仓库:

1git add .
2git commit -m "内容"
3git push origin master#第一个一般都为origin吧
4git push github master

后期若要定期检查本地和两个仓库同步状态:

1git status#仅用来检查本地和origin的同步状态

git status
(up to date 就说明本地和origin是正确同步的);

1git fetch --all#用来检查三方是否都正确同步,以下一步步执行
2git log --oneline HEAD#本地最新提交
3git log --oneline origin/master#gitee最新提交
4git log --oneline github/master#github最新提交

git fetch –all

log HEAD

log origin

log github
检查三个输出内容是否相同即可;


details
#

  • GIT REMOTE 若在github上rename了仓库名称 下一次在本地git add-commit-push之前记得先检查 git remote -v,应该还是旧仓库的地址.因此推荐先配置git remote set-url origin YOUR_NEW_URL.git后再提交代码;

Wrong1
#

wrong: 由于在gitee上给仓库添加了license文件; 此时仓库有license文件 但本地并没有; and 我并未记得; 直接更新了新的本地内容; 于是乎:

wrong1

在进行git push时出现报错; 处理方法:

1git pull origin master#拉取远程仓库的变化更新文件,并合并到本地

此时终端可能会进入另一个界面,叫做"vim编辑器"; 此时要先按一下Esc键,再输入:wq,最后按一下Enter 应该就会恢复正常了; 最后再输入:

1git push origin master
2#或者这里直接用git push更好