git标签和分支命令

2023-05-16

本编记录git标签和分支的基本命令

=====git 标签基本命令


#查看总共有哪些标签, -l参数用于过滤,比如这里是查看以v开头的所有分支
git tag  -l v* 

#创建一个临时标签,最简单的创建标签的方法
git tag v1

#创建一个附注标签,可以带一些基本信息,后面也可以用于校验的
git tag v2 -a -m "zxc v2"

#根据提交的hash值创建一个标签
#先用git log ->  123124078 查看要打上哪个提交记录的标签

git tag t1 123124078

#删除一个标签
git tag -d v1

#查看标签里面的内容
git show v1

#把本地标签推送到远程上, origin为仓库的名字
git push origin v1

#把本地所有标签推送到远程上,远程存在的不会变为2份
git push --tags

#git中tag无法切换到上面开发(这跟svn差别很大,svn是可以的)
#git中只能以tag再建立一个分支出来进行开发

#建立并切换到上面去
git checkout -b 分支名  tag名




==============git恢复到上一次版本

#可以用
git reset --hard id(提交版本号,从git log 获取的那一长串)
但是这样恢复后会丢失log日志,所以一般建议都是直接建个分支再往回合并


例子如下


A --- B --- C --- D
                (HEAD)

git checkout -b ttt B
git reset --soft D
然后 commit 得到
ttt: A --- B --- C --- D --- B'
                           (HEAD)
把这个branch推到repo的master
git push origin HEAD:master 或者
git push origin ttt:master 都行
完事之后删掉这个临时的ttt branch即可


要么只恢复某个文件也是可以的,再提交一次就行了!

分支命令

对于git来说,创建分支其实很快的,只是建立了一个提交hash引用,几乎在瞬间完成的,这
跟svn是有很大不同的,svn是直接copy一份文件出来的,,,,

当前分支还有一个别名叫  HEAD,用于专门表示你所在的分支的

======git 分支命令

#查看所有分支, --list可加可不加,   origin/test之类的代表是远程分支
git branch --list

#创建一个分支
git branch test

#切换分支
git checkout test

#创建并同时切换到该分支上
git checkout -b dev

#查看未合并的分支
git branch --no-merged

#查看已合并的分支
git branch --merged

#简单的查看提交历史信息   --all查看所有日志信息,包括未合并的分支提交信息
git log --oneline --decorate --graph --all


#删除分支
git branch -d test

#查看当前分支跟踪哪些远程分支中
git branch -vv

#查看远程有哪些分支
git branch -r


========远程分支相关


#拉取一个项目 -o zxc 未仓库命名为zxc 默认不加为 origin
git clone -o zxc xxx.git

#把本地分支推送到远程分支上, origin 为远程仓库名称
git push origin zxc
git push origin local:remote-batchName -> 可以修改要推送到远程的分支名称

#当远程有新分支时拉下来本地不会自动创建对应的分支
#但是可以手工创建一个分支并以远程的分支引用作为跟踪分支(也叫上游分支)
git checkout -b serverfix origin/serverfix

#如果不需要改名的话,可以直接用 --track 参数拉取一个本地分支根据远程的分支
git checkout --track origin/serverfix

#把当前分支关联到远程分支上
git branch -u origin/serverfix

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git标签和分支命令 的相关文章

  • 如何在 git 中使用 --work-tree 选项?我不断收到错误消息

    我有一个普通的存储库 其中有一个工作树和一个与工作树位于同一目录中的 git 文件夹 我正在尝试使用以下命令从该位置外部运行 git 命令 git git dir path to repo git work tree path to rep
  • 如何使用开发分支中的一行命令更新本地 master 并重新设置其基准?

    假设我正在一个名为dev那就是跟踪master 如果我想更新我的主分支 我需要经常运行这一系列命令 git checkout master git pull git checkout dev git rebase i master 当我在
  • 为什么会导致合并冲突?

    这是我的 git 存储库的初始快照 在树枝上master file m1包含 L1 在树枝上dev file m1包含 L1 L2 如果我尝试合并dev from master 这会导致冲突 git checkout master Swit
  • jquery 克隆组合框无法运行

    我有下表 当我按下第一个按钮时 我调用 jquery 来克隆第一行并添加新行 table class table table striped table bordered bootstrap datatable style font siz
  • 如何在 github 中拉取请求时忽略或排除文件

    我们有 4 个分支 1 dev 2 qa 3 staging 4 master 我们要更新并添加1 dev中的CODEOWNERS文件中的一些人 2 qa到4 master的CODEOWNER文件将被保留 因为 1 dev 有 4 个审稿人
  • git:显示所有已修改的文件 - 已暂存和未暂存

    我需要一个命令给我所有修改过的文件 这包括暂存 即新添加的文件 和非暂存更改 在普通列表我可以在脚本中使用它 虽然这个问题可能听起来很熟悉 但我只找到接近我想要做的命令 git ls files m 列出 非分阶段 修改但忽略了上演的和新的
  • Heroku上传-预编译资产失败

    我需要帮助 当尝试将我的应用程序上传到heroku时 我收到此错误 有人知道为什么吗 有几个是错的 谢谢 Using rake 10 1 0 Using tlsmail 0 0 1 Using uglifier 2 1 2 Your bun
  • 执行 rebase 后,Git 提交会在同一分支中重复

    我理解 Pro Git 中提出的场景是关于变基的危险 https git scm com book en v2 Git Branching Rebasing rebase peril 作者基本上告诉你如何避免重复提交 不要对已推送到公共存储
  • 如何通过pygit2获取当前签出的Git分支名称?

    这个问题应该与 如何获取Git中当前的分支名称 https stackoverflow com questions 6245570 how to get current branch name in git 获取 git 当前分支 标签名称
  • 如何将/ff分支提升到HEAD

    我有一个受保护的分支 只有在集成构建上的集成构建通过后 才应提升 快进该分支 我目前尝试通过在集成分支的拉取请求上构建集成来解决这个问题 一旦成功 只需将发布分支快速转发到集成分支的尖端 但是 当我在 TFS 构建系统上构建分支时 它将检出
  • 更改用户名 Github “您必须验证您的电子邮件地址” git Push 上出现 403 错误

    我最近在 github 上更改了我的用户名 以便所有内容都重定向到我用户名上的新 URL 我通过命令行收到此错误git push 您必须验证您的电子邮件地址 致命 请求 URL 返回错误 403 但是 github 不允许我在帐户 gt 设
  • 如何从现有的远程分支创建本地分支?

    我想从现有的远程分支 假设是远程 A 创建一个分支 然后将更改提交到存储库 我已使用以下命令从现有的远程 A 创建本地分支 git checkout remote A git branch master remote A 现在我已经使用以下
  • 通过 Git/SVN 将前缀 ? 添加到代码中

    怎么加前缀 v VersionNumber使用 Git SVN 高效地访问存储库中的每个文件 我发现 SO 使用这种做法为其存储库中的每个特定文件提供版本号 他们使用SVN 我想知道如何使用 Git 做同样的事情 举几个例子 1 2 在你的
  • Git Bash Shell 可以使用默认的 Windows 快捷方式进行复制和粘贴吗?

    我希望能够使用 Ctrl C 和 Ctrl V 复制并粘贴到 Git Bash Shell 中 但是 shell 具有 Ctrl Insert 和 Shift Insert 作为这些操作 我没有看到更改这些快捷键的明显方法 我错过了一些明显
  • 使用 Documents4j 将 Doc 转换为 PDF

    我想尝试使用 Documents4j 将文档转换为 PDF 我按照此处的说明进行操作http documents4j com develop http documents4j com develop 当我打字时mvn package然后按回
  • git clean -ndX 不会删除目录

    With gitignore foo 和一个 git 存储库 quux quux foo quux foo bar quux foo bar baz As foo被忽略 git 假设工作目录是干净的 git status On branch
  • 如何在 Android Studio 中使用 git 分支

    我是 git 新手 我有一个非常简单的使用 git 的场景 我的第一个版本是用 Android Studio 编写的 现在我想使用一些新功能 到目前为止我做了什么 在我的 Android Studio 中启用 VCS 从 Android S
  • 樱桃选择问题:还应用了之前提交的更改

    在我的项目中 我几个月前发布了一个版本 在该版本发布之后 我在 master 分支上做了很多更改 如果我遇到上一个版本中存在的一些错误 我会在主分支上修复它们 然后将它们挑选到我在上一个版本中创建的分支 然后我可以提供一个仅包含错误修复的新
  • TortoiseGit 与 TortoiseSVN 并存?

    我已经使用 TortoiseSVN 好几年了 但我正在考虑慢慢改用 git 因为我真的很喜欢它的分支和合并 我目前正在通过命令行使用 git 但正在考虑安装 TortoiseGit 有人有并排使用两只乌龟的经验吗 这有什么已知的问题吗 我真
  • 在家庭和办公室进行开发,GIT 会比使用 xcopy 的 SVN 更容易吗?

    如果出于安全原因 源代码只能存储在我的家庭计算机和办公室计算机上 如果传输代码的唯一方法是 USB 密钥 那么哪种源代码控制是最好的 SVN还是GIT 注意 两台计算机之间没有网络连接 我推荐git 无论哪种方式 您都需要 USB 密钥上的

随机推荐