为什么学Git

  1. 备份:以防电脑突然蓝屏导致代码丢失
  2. 代码还原:在把代码改的乱七八糟之后还能复原
  3. 协同开发:为了同时修改代码
  4. 追溯代码编写人和编写时间

获取本地仓库

  1. 在任意位置创建一个空目录
  2. 进入目录后打开Git Bash
  3. 执行git init
  4. 如果创建成功就可以看见.git目录

基础操作命令

创建:touch …

对于修改这一类(增删改),需要先从工作区通过git add把他提交到暂存区

在通过git commit提交到仓库才能完成修改,成为一次提交记录

git status查看修改的状态(工作区,暂存区)

git commit -m "注释内容"将暂存区里的内容存到仓库当前分支中,日志为注释内容

vi 文件名修改文件(编辑按i,退出的话按esc,在按:加上wq)

git log [option]查看提交记录

option:

  1. –all 显示所有分支
  2. –pretty=oneline 将提交信息显示为一行
  3. –abbrev-commit 使得输出的commitld更简短
  4. –graph 以图的形式显示

但是每次查看记录非常麻烦,因此可以用别名把这些内容缩短

alias 别名='操作' 如git-log

git reset --hard 日志版本回退

  • 7c4b75b (HEAD -> master) file change
  • 45bae1d first

日志就是前面的一串符号

git reflog查看之前已经删除的日志记录

之前的git add . ,如果有不想管理的文件,那这个操作就非常麻烦,因此可以创建一个.gitignore文件来忽略

touch .gitignore

添加*.a来忽略所有以.a结尾的文件

分支

从主线上分开来开发新的功能,且不会影响主线

image-20251108151024575

HEAD指向谁,谁就是当前分支

git branch查看本地分支 (-vv 会展示更详细的内容)

git branch 分支名创建本地分支

git checkout 分支名切换分支

git checkout -b 分支名创建并切换分支

git merge 分支名合并分支(把分支名这个分支合并到当前分支)

git branch -d 分支名删除分支(不能删除当前分支,只能删除其他分支)

git branch -D 分支名强制删除分支:当要删除的分支没有合并到master时,用-d的话会提醒你没合并,这时候就用-D

冲突

image-20251108172458313

两个分支修改的时候可能会产生冲突,例如修改了同一行代码,这时候就需要手动修改

github连接远程仓库

1
2
3
4
5
6
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/XiDongWe/CangQiongWaiMai.git //修改一下
git push -u origin master

git remote add <远端名称> <仓库路径> 添加远程仓库 (远端名称一般是orrgin)

git remote查看远程仓库

git push [远端名称[本地分支名][:远端分支名]推送到远程仓库

若两个分支名相同,可省略[:远端分支名]

git clone <仓库路径> [本地目录]克隆仓库

git fetch [远端名称] [分支名]抓取指令,把仓库里的更新抓取到本地,不会进行合并

git pull [远端名称] [分支名]拉取指令,就是fetch+merge(也会有冲突,按上文修改即可)