git那些事 2

git fetch参数解释

git pull origin = git fetch + git merge origin/<branch>
git fetch 将远程仓库的版本记录,同步到本地的远程仓库
image

终止合并

应用于git pull origin 操作完后,提示有冲突请求合并,但是想回滚到拉取前。

git -c core.quotepath=false -c log.showSignature=false merge --abort

git alias设置

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

image

标签管理

git 标签存在的意义就是,为了能更人性化、更容易的找到版本代码( commit 号查找版本代码太折磨人)。
举例:

“请把上周一的那个版本打包发布,commit号是6a5819e...”
“一串乱七八糟的数字不好找!”
如果换一个办法:
“请把上周一的那个版本打包发布,版本号是v1.2”
“好的,按照tag v1.2查找commit就行!”
所以,tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。

注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。

使用方式
查看和创建标签

  • 命令git tag <tag_name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
  • 命令git tag -a <tag_name> -m "描述信息..." <commit_id>;
  • 命令git tag可以查看所有标签。
  • 命令 git show <标签>,可以查看标签更详细的信息(比如描述信息)。

推送和删除远程标签

  • 命令git push origin 可以推送一个本地标签;
  • 命令git push origin --tags可以推送全部未推送过的本地标签;
  • 命令git tag -d 可以删除一个本地标签;
  • 命令git push origin :refs/tags/可以删除一个远程标签。

git rebase

变基,就是将当前分支上原本多个线的 commit版本,合并成一条直线,使得历史版本查看起来更直观。
一般用于合并冲突,提交版本后,执行git rebase

git branch --set-upstream <branch_name> <origin/branch_name>

建立本地分支和远程分支的关联

git branch -D <branch_name>

强制删除某个未被合并的分支。

git switch master

切换到 master 分支

  1. git switch -c dev # 创建并切换到 dev 分支,它跟 git checkout -b dev指令的效果一样。

git merge --no-ff -m "desc" dev

git merge --no-ff -m "desc" dev 使用非快进模式合并代码,其中--no-ff参数表示禁用Fast forward。git 默认是使用快进模式合并,这样的坏处是,删除分支后,会丢失分支信息,而禁用后,在合并时会生成一个新的 commit,这样就可以从分支历史上看出分支信息。

git stash

git stash将当前暂存区内容放进默认是先进后出的堆栈中。一般用于当前内容还未写完,但是要切换到其他分支做一些操作,可以先将文件 add 进缓存区,然后使用 git stash 将内容保存到堆栈中,即可。

git stash list  # 列出堆栈中的内容。
git stash apply # 恢复最近一次的 stash 操作内容,但不删除堆栈中的记录
git stash pop #  恢复最近一次的 stash 操作内容,且从堆栈中删除记录
git stash apply stash@{1}  # 恢复到指定的 stash 操作内容,但不删除堆栈中的记录。
git stash drop stash@{1}  # 删除堆栈中的指定记录。

笔记小抄

posted @ 2022-05-02 11:32  Tank-Li  阅读(135)  评论(0)    收藏  举报