一个git简单cheatsheet

一个简单的git使用方法记录,主要是每次想回滚之类的操作时候都想不起命令…

git config

1
2
3
4
5
6
7
8
9
10
11
12
git config --global user.name "loser"
git config --global user.email "[email protected]"
git config --global credential.helper store

查看:
git config --global --list
git config --global user.name
git config --global user.email

参数:(Local)
--global 全局配置,对所有仓库生效
--system 系统配置,对所有用户生效

create local repository

1
2
3
4
5
6
mkdir loser-repo
cd loser-repo
git init

git clone https://github.com/loser/loser.git

local Repo 关联 remote Repo

1
2
3
4
5
6
7
8
9
10
11
12
echo "remote-repo" >> README.md
git init
git add README.md
git commit -m "first commit"
____若已存在仓库则执行以下,否则上下都执行
git branch -M main #将当前分支重命名为 main
git remote add origin [email protected]:loser/repo.git #关联远程仓库[email protected]:loser/repo.git;并声名为origin
git push -u origin main:main #将本地 "main" 分支推送到远程仓库origin 的main分支

git remote -v #查看当前关联的仓库
git remote set-url origin <new_path> #重置仓库地址
git remote remove origin #删仓库

git work flow

  • main 分支:只接受 hotfix/release 的合并,不允许直接 push 修改;每次合并生成 x.x.x 版本号(主版本,次版本,修订版本)
  • hotfix: 从 main 分离,修复完合并回 main
  • dev: 从 main/hotfix 分离,开发完成合并到 release
  • release: 从 dev 分离,测试完成合并到 main
  • feature-xx: 从 dev 分离,开发完合并到 dev

每次修改完 bug 把修改记录添加到暂存区,最后再一次性提交到本地仓库,记录为一次版本信息
可以理解为 3 个目录(实际上不是):本地仓库是发布目录

1
2
3
4
5
6
7
8
9
10
11
git status 查看文件状态
git log查看提交版本记录
git log —oneline

git diff 查看暂存区和工作区差异
git diff HEAD 查看工作区和当前版本差异
git diff -- cache 查看暂存区和当前版本差异
git diff 59cf93 59cf712 比较两个版本差异
或git diff HEAD~1 HEAD file3.txt比较两个版本file3的差异

git ls-files查看暂存区

提交

1
2
3
4
5
6
7
8
9
10
git add fileName
git add . //跟踪当前目录下所有未跟踪文件

git commit filename -m "此为更新说明"
git commit -am "说明" 暂存+提交

git push ssh关联后使用这个命令即可;
git push remote_repo xvjin_dev

git checkout -- 撤回到最近一次提交状态

删除

1
2
3
4
5
6
7
8
git rm file.txt                       用ls和git ls-files 可以发现在工作区和暂存区中同时删除了
git commit -m "删除"

git clean -f 强制清空未跟踪文件

git rm -r dir递归删除某目录下所有东西
git rm --cached file.txt从缓存区删除

更新

1
2
3
4
git pull origin main                                                        拉取并合并origin 仓库的main分支
git fetch origin main 拉取

git pull mylibrary main --allow-unrelated-histories 第一次拉取远程分支到本地可能需要

分支管理

1
2
3
4
5
6
7
8
9
10
11
12
13
git branch xvjin-dev         创建分支
git switch xvjin-dev 切换分支
git checkout xvjin-dev 切换分支(旧)

git merge xvjin-dev 把xvjin-dev 合并到当前所处分支,且当前分支多出一条提交记录;合并后xvjin-dev 还是存在的,删除需手动
(dev)>>git rebase main 将当前dev分支嫁接(变基)到目标分支main上;这种合并形成线性历史,比较干净

git branch -d xvjin-dev 合并后删除分支
git branch -D xvjin-dev 强制删除未合并分支

git branch -a 查看所有分支
git remote show origin 查看origin仓库更新记录
git log 查看本地仓库更新记录

合并冲突

1
2
3
4
5
1)git diff          查看差异
2)手动修改合并失败的文件
3)提交修改的文件就自动完成了冲突文件的合并

git merge --abort 中止合并

倒回某个版本

1
2
3
4
5
6
7
8
9
git reset --soft HEAD^                                       回退到仓库某log版本,保存工作区,暂存区内容
git reset --hard HEAD~1 回退到仓库某log版本,不保存工作区,暂存区内容
git reset --mixed 59cf9334cf957 回退到仓库某log版本,保存工作区,不保存暂存区内容

git log --oneline --grahp --decorate --all 图形化查看版本号哈希,用于上述回退

git reflog查看历史操作

git checkout -- filename 丢弃工作区的修改,用缓存区数据覆盖当前工作区
作者

Jhuoer Yen

发布于

2024-12-11

更新于

2024-12-11

许可协议

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×