51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Git基本使用

基本命令 ==== 初始化仓库 ----- ``` git init ``` 修改工作区提交到暂存区stage ---------------- ``` git add . ``` 提交暂存区到仓库(版本库) ------------- ``` git commit -m "msg" ``` ### 撤销操作(新旧版本git有差异) ### 旧版本 * 没有`git add`时,用`git checkout -- file` * 已经`git add`时,先`git reset HEAD <file>`回退到1.,再按1.操作 * 已经`git commit`时,用`git reset`回退版本 ### 新版本 * 文件只在工作区操作,未add\*\*。撤销操作:**git restore \** 。结果:**工作区文件回退**。 * **文件已add,未commit** 。撤销操作:**git restore --staged \** 。结果:**暂存区文件回退,工作区文件未回退,如需继续回退,操按情况1操作。** * **文件已add,已commit** 。撤销操作:**git reset --hard commit_id** 。结果:**工作区文件、暂存区文件、本地仓库都回退** 查看提交操作日志 -------- ``` git log git log --pretty=oneline    简化日志 ``` 查看文件状态 ------ ``` git status ``` 查看工作区和版本库里面最新版本的区别 ------------------ ``` git diff HEAD -- readme.txt ``` 删除文件(本质是修改文件,同rm删文件后git add) ---------------------------- ``` git rm <file> ``` 克隆远程库到本地 -------- ``` git clone <url> ``` 本地已有库关联远程库 ---------- ``` git remote add origin <url> ``` 推送远程库 ----- ``` git push <-u> origin master   -u参数推送且关联分支,方便后续操作 ``` 查看远程库信息 ------- ``` git remote -v ``` 删除远程库的绑定 -------- ``` git remote rm <name>     name一般为origin ``` 创建分支 ---- ``` git branch <branchName> ``` 创建并切换分支(旧) ---------- ``` git checkout -b <branchName> ``` 创建并切换分支(新) ---------- ``` git switch -c <branchName> ``` 查看当前分支 ------ ``` git branch ``` 合并指定分支到当前分支 ----------- ``` git merge <指定分支名> ``` 删除分支 ---- ``` git branch -d <分支名> ``` 合并分支且禁用`Fast forward`模式 ----------------------- 本次合并要创建一个新的commit,所以加上`-m`参数,把commit描述写进去。 ``` git merge --no-ff -m "merge with no-ff" <指定分支名> ``` ![](https://img1.51tbox.com/static/2024-03-04/col/e195fce34cc2606d34f844ca86c0dc7a/31afa38f8b7d4711af2d22d5e829b025.png) 开发分支管理原则 -------- master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活,干活都在dev分支上,dev分支是不稳定的,到比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本; Bug分支 ----- 当前dev分支工作未完成提交且需处理Bug时,把当前工作现场"储藏"起来,等以后恢复现场后继续工作:此时工作区为clean的 ``` git stash ``` 查看stash存放的工作现场 ``` git stash list ``` 要恢复工作现场dev,可用以下指令 ``` git stash apply        恢复 git stash drop         删除stash内容 git stash pop          恢复的同时把stash内容也删了 ``` 多次stash,恢复的时候,先用`git stash list`查看,然后恢复指定的stash ``` git stash apply stash@{0} ``` 在master分支上修复的bug,想要合并到当前dev分支,可以用`git cherry-pick <commit>`命令,把bug提交的修改"复制"到当前分支,避免重复劳动。 设立本地分支与远程分支的链接 -------------- ``` git branch --set-upstream-to <branch-name> origin/<branch-name> ``` 拉取远程库 ----- ``` git pull <remote> <branch> ``` 优化Git的提交历史(变基) -------------- ```  git rebase ``` rebase操作可以把本地未push的分叉提交历史整理成直线;rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比; 创建标签(标记版本) ---------- ``` git tag <name>       例:git tag v1.0 git log --pretty=oneline --abbrev-commit  找到历史版本的commit_id git tag <name> <commit id>   创建带有说明的标签,用-a指定标签名,-m指定说明文字: git tag -a v0.1 -m "version 0.1 released" 1094adb ``` 查看标签 ---- ``` git tag ``` 查看标签信息 ------ ``` git show <tagname> ``` 删除标签 ---- ``` git tag -d <name>  本地 从远程删除:先本地后远程: git push origin :refs/tags/v0.9 ``` 推送标签到远程 ------- ``` git push origin <tagname> 一次性推送全部尚未推送到远程的本地标签: git push origin --tags ```
赞(8)
未经允许不得转载:工具盒子 » Git基本使用