首页 > 其他分享 >Git常用操作

Git常用操作

时间:2023-03-09 18:01:52浏览次数:31  
标签:常用 Git br -- commit tag 版本 git 操作

代码版本回退

对于错误的commitpushmeger操作进行回退。

方式一:reset

回退,也就是修改HEAD指针
image

通过版本号
版本号就是很长的一串,如下面那个。有时候也是短的,比如Gitlab上拷贝的,都一样能用

git reset --hard 7135c789143acf19380f4917a6af73c7899e645f

# 如何查看版本号,通过日志或开发工具
git log --since=2.days     # 查看近两天的日志(2代表天数)
idea 在commit记录上右键第一个选项就是版本号

通过次数

# 回退到当前版本的上 1 个版本
git reset --hard HEAD^1
# 回退到当前版本的上 2 个版本
git reset --hard HEAD^2

最后的符号,正确命令应该是 ^ ,因为 ^ 符号在Windows下被识别为是否换行了,所以如果是Windows窗口使用该命令,需要把 ^换成~

git reset --hard HEAD~1

这个时候,本地的代码已经倒退,但是远程还没有,需要push一下来撤销远程
使用git push -f提交更改:
此时如果用 git push会报错,因为我们本地库HEAD指向的版本比远程库的要旧
所以我们要用git push -f强制(force) 推上去,覆盖掉远程的新代码就可以了

注意:
采用这种方式回退代码的弊端显而易见,那就是会使 HEAD 指针往回移动,从而会失去之后的提交信息。将来如果突然发现,版本二 和 版本三 是多么绝妙的想法,可它们已经早就消失在历史的长河里了,再也找不回来了,也可以考虑先备份。
有些公司明令禁止使用 git reset 命令去回退代码,原因与上述一样。所以,我们需要找到一个命令,既可以回退代码,又可以保存错误的提交。这时,git revert 命令就派上用场了。


方式二:revert

git revert 是用于反做某一个版本,以达到撤销该版本的修改的目的,他比 git reset稍微麻烦一些 。
场景:我们 commit 了三个版本(版本一、版本二、 版本三),突然发现版本二不行(有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。如下图所示:
image

适用场景: 如果我们想撤销之前的某一版本,但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。其实就是覆盖

# 通过版本号
git revert 7135c789143acf19380f4917a6af73c7899e645f

git revert HEAD    # 重做上1次(1可以省略)
git revert HEAD^1    # 重做上1次(1表示次数)
git revert HEAD^2    # 重做上2次(1表示次数)


git cherry-pick

场景:我在dev分支做了10次提交、现在需要合并 到master,但是我又不想全部合并,只合并一个两个或者某个commit记录到master,怎么操作?

1、在dev把需要合并到master的commit 版本号查出来。
2、切换到master分支,执行commit version的粘贴操作。

例如:

git cherry-pick b734ef2b93bf

如果需要合并多个,后面版本号用空格隔开,拼接即可

git cherry-pick v1 v2 v3

因为合并过来的是commit记录,所以不需要再次commit了,这个时候直接push即可



Tag 操作

tag是一个标签或者说是一个记录点,可以用于对某个commit点或分支进行标记,比如项目中V1版本对应某个commit点,对这个commit打一个V1 tag,那么,在查找或者回退代码时,可以直接查找V1找到对应的源码,相比去查找commit id更加方便与人性化。

查询tag

git tag # 查看本地所有tag
git ls-remote --tags origin # 查看远程所有tag
git show <tag名字> # 查看 tag 详细信息

创建tag

git tag <tag名字> # 创建 tag
git tag -a <tag名字> -m <注释文字> # 创建带注释的tag

提交tag

git push origin <tag名字> # 推送单个tag到远程
git push origin --tags # 推送所有本地tag到远程

删除tag

git tag -d <tag名字> # 删除本地tag
git push origin :<tag名字> # 删除远程tag


个人信息修改


# 查看所有配置
git config --list
# 查看单项配置
git config user.name
git config user.password
git config user.email

# 修改配置全局配置
git config --global user.name "zhangsan"
git config --global user.email "[email protected]"

# 当前项目单独配置,去掉 --global 即可
git config user.name '[email protected]'


remote 修改


# 查看当前 remote
git remote -v

# 直接更新 remote(方式一)
git remote set-url origin xxxxx.git

# 直接更新 remote(方式二)
# 先删除、在添加
git remote rm origin
git remote add origin https://xxxxxxx.git


branch 修改


# 查看本地分支 * 表示当前使用的分支
git branch
# 查看远程分支
git branch -r
# 查看所有分支
git branch -a


# 需要将分支br_old修改为br_new,执行如下步骤:
# 1、切换到br_old分支,如果已经在这个分支下,可以不执行此步骤
git checkout br_old
# 2、将代码更新到和远程仓库一致
git pull origin br_old
# 3、将本地仓库的br_old的名称修改为br_new
git branch -m br_old br_new
# 4、将本地分支push到远程仓库
git push --set-upstream origin br_new
# 5、将远程分支br_old删除
git push origin --delete br_old

标签:常用,Git,br,--,commit,tag,版本,git,操作
From: https://www.cnblogs.com/qiushanyueyue/p/17192653.html

相关文章

  • Docker常用应用之Docker管理
    1.DockerPortainerdockerportainer可以用来图形化管理镜像,容器,卷,网络等,降低docker使用门槛1.1.安装DockerPortainerCE安装dockerportainer分为CE(CommunityEditio......
  • git常用命令
    git添加远程仓库:gitremoteaddoriginurl本地推送到远端分支:gitpushuorigin/xy_v1.6.0查看远程仓库库:gitremote删除远程仓库:gitremotermorigin//orig......
  • Docker常用应用之图床
    1.简介lsky,兰空图床,分为开源版本和付费版本,付费版本233.33¥永久,具体能干什么,两个版本的区别,可以查看兰空图床官网,如果要查看源代码,或者贡献源代码,或者下载软件,可以查看lsky......
  • gitlab克隆不显示端口
    1、修改配置文件/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml##更改所需端口  2、重启gitlab-ctl restart ......
  • 3.4数组的常用方法
    ​ 数组的常用方法<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title></title><script>......
  • Github从入门到实操
    Git基础创建版本库gitinit添加及提交到仓库gitaddxxx.filegitcommit-m"xxxx"##看看工作区和暂存区的区别gitdiffxxx.file版本回退#查看最近三次co......
  • 63、快速操作工具—黑白背景
     【制作黑白背景】     ......
  • 62、快速操作工具—模糊背景
    1、双击背景图,然后【ctrl+j】复制一个图层2、点击【帮助】—>【Photoshop帮助】—>【快速操作】—>【模糊背景】—>【高斯模糊】3、然后选择【调整画笔边缘工具】,设置画......
  • EBS 开发技巧 常用代码
    Form开发技巧常用代码Form中的变量Form中用到的变量,总结如下:变量定义位置作用域,由低到高访问方法引用方式各层触发器中的变量该触发器FormPL/SQL变量......
  • Linux 常用命令
    Linux运维常用命令解压/压缩tar–cvfjpg.tar*.jpg #将目录里所有jpg文件打包成tar.jpgtar-zcvftest.tar.gz./test/  #将文件夹test压缩成test.tar.gztar–xvf......