一个简单的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 git remote add origin [email protected]:loser/repo.git git push -u origin main: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 丢弃工作区的修改,用缓存区数据覆盖当前工作区
|