超级详细的GitBash使用教程03:Tags和Branch分支相关操(适合小白)

本文详细介绍了如何在GitHub上进行tag和branch的管理,包括tag的创建、推送、删除,以及branch的创建、切换、合并等操作流程,适用于初学者快速掌握GitHub的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

好消息,github已经有了官方的中文说明文档,大家可以参考学习(当然作为程序员还是需要良好的英语基础的):https://help.github.com/cn

阅读本文时请及时查阅前两篇文章,这是一整套的教程哦:

tag推送

新建的整个过程就是现在本地新建一个tag,完后上传到github的远程仓库中;删除的整个过程是需要现在github远程仓库中删除,完后再在本地仓库中删除
  1. 通过命令:git tag查看已有的tag;

  2. 通过命令:git tag tag的名字 -m "注释内容"新建一个tag推送,此时只是在本地仓库有了这个新建的tag推送,远程仓库没有;

  3. 通过命令:git push origin tag的名字或是git push --tags将新建的tag上传到github远程服务器上,提交成功后刷新即可在远程仓库看到;(首次打开gitbash进行这一步时是需要验证的,会提示输入github的用户名完后在弹出的窗口中输入密码验证的。)
    在这里插入图片描述在这里插入图片描述git push --tags上传tag(此图后续补的,不要在意路径问题)
    在这里插入图片描述

  4. 通过命令:git push origin --delete Tag名删除远程仓库;

  5. 通过命令:git tag -d Tag名删除本地仓库;
    在这里插入图片描述

Branch(分支)推送

  1. 通过命令:git branch查看当前已有的分支已经当前我们处于哪个分支下。(*号键表示我们当前所处的分支)。命令:git branch -a可以查看本地分支与远程仓库分支,远程仓库分支显示为红色;

  2. 通过命令:git checkout -b 分支名此处是新建一个名为FZtest01的分支,此时只是在本地仓库新建一个分支;

  3. 通过命令:git push origin 分支名将分支上次到github远程仓库中,在远程仓库中刷新即可显示;
    在这里插入图片描述

  4. 通过命令:git checkout 分支名切换当前所处分支;

  5. 通过命令:git push origin --delete 分支名删除远程仓库上的分支,刷新github远程仓库即可看到这个分支已经没有了(或是使用命令:git push origin :分支名,意思是用空的分支替换冒号后的分支即删除冒号后的分支);

  6. 通过命令:git branch -d 分支名删除本地仓库的分支,如果需要删除A分支则需要先切换到别的分支下进行删除;
    在这里插入图片描述

  7. 通过命令:git checkout --track origin/远程分支名解决远程新建了一个分支,但是本地没有该分支。通过此命令会在本地新建一个与远程分支名相同的本地分支,会自动跟踪远程的同名分支。(即我在远程仓库新建了一个A分支但是本地没有这个分支,通过上述的命令可以在本地新建一个同名的A分支就解决了这个问题)
    在这里插入图片描述

  8. 通过命令:git push --set-upstream origin 分支名如果本地新建了一个分支 但是在远程没有,这时候 push 和 pull 指令就无法确定该跟踪谁,一般来说我们都会使其跟踪远程同名分支,可以利用 git push --set-upstream origin 分支名 ,这样就可以自动在远程创建一个同名分支,然后本地分支会 track 该分支。后面再对该分支使用 push 和 pull 就自动同步。

  9. 通过命令:git merge 需要合并的分支名可以将分支与主分支master合并;(提示Already up-to-date,你可以理解成分支与主分支相同,合并就不成功。)

  10. 通过命令:git remote update origin --prune更新远程分支;

  11. git merge最简洁用法:

  • (1)开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支
		git checkout dev   
		git pull
		git checkout master    //切换到master主分支
		git merge dev          //将开发分支合并到master主分支
		git push -u origin master    //提交到远程仓库
  • (2)当master代码改动了,需要更新开发分支(dev)上的代码
		git checkout master  
		git pull
		git checkout dev       //切换到dev开发分支下
		git merge dev          //将主分支master合并到dev开发分支
		git push -u origin master    //提交到远程仓库
  • (3)git merge origin master 和 git merge origin/master的区别在哪里?
		git merge origin master //将origin merge 到 master 上
		git merge origin/master //将origin上的master分支 merge 到当前 branch 上 

一般进行merge操作时,最好先checkout到你希望进行merge操作的分支(假设现有分支branchA与分支branchB,想将分支branchA合并到分支branchB上),此时就需要我们先checkout到分支branchB上,然后再进行

git merge branchA 

因为你不能确保是否产生confict,所以先checkout到branchB上。
此外,为了保险起见,你可以在merge前先建一个备份分支

git checkout -b branchB_backup
  1. git push origin与git push -u origin master的区别:

    • 命令:git push origin表示将当前分支推送到origin主机的对应分支,如果当前分支只有一个追踪分支,那么主机名都可以省略。
    • 命令:git push -u origin master命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。
    • git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,这样后面就可以不加任何参数使用git push。不带任何参数的git push,默认只推送当前分支,这叫做simple方式。此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。
<think>嗯,用户想了解如何将TortoiseSVN项目迁移到本地Git仓库。首先,我需要回忆一下相关的工具步骤。记得有一个叫做git-svn的工具,可以用来将SVN仓库转换到Git。不过用户可能对命令行不太熟悉,所以可能需要更详细的步骤说明。 首先,应该确保用户安装了必要的软件,比如GitTortoiseSVN。然后,可能还需要Perl环境,因为git-svn依赖一些Perl脚本。接下来,步骤可能包括克隆SVN仓库到本地,使用git svn clone命令,并处理可能的路径问题,比如作者信息转换,因为SVNGit的提交者信息格式不同。 另外,用户提到的TortoiseSVN仓库如果有中文名可能会遇到问题,引用[2]中提到中文名库无法查看日志,可能需要确保SVN仓库路径是英文的。迁移过程中,如果原来的SVN仓库有中文路径,可能需要先重命名或迁移到一个英文路径的仓库,以避免问题。 然后,转换完成后,需要初始化本地Git仓库,添加远程仓库(如果有的话),但用户可能只需要本地仓库,所以可能不需要添加远程。此外,清理旧的svn元数据也很重要,比如.git/svn目录,以彻底转换为纯Git仓库。 可能还需要处理分支标签,因为SVN的分支结构与Git不同,可能需要手动调整。比如,SVN的分支通常放在branches目录下,而Git则是直接引用。此外,提交历史的转换是否完整也是一个需要注意的点,可能需要检查日志是否完整。 用户可能还会遇到常见的问题,比如作者信息格式不正确,或者路径问题导致克隆失败。需要给出具体的解决方案,比如编辑authors.txt文件,或者检查SVN仓库的URL是否正确。特别是如果原来的SVN仓库在VisualSVN服务器上,并且有中文名,需要按照引用[2]的建议更改为英文名后再迁移。 总结步骤应该是:安装必要工具→克隆SVN仓库→处理作者信息→转换并验证→清理元数据。同时,提供常见问题的解决方法,比如作者信息错误、路径问题等。 最后,生成相关问题,帮助用户进一步了解迁移后的作或优化方法,比如迁移后如何同步变更,处理二进制文件差异,或者优化Git仓库大小等。</think>### TortoiseSVN项目迁移到本地Git仓库的完整教程 #### 一、准备工具与环境 1. 安装Git客户端TortoiseSVN最新版本 2. 确保Perl环境已配置(git-svn依赖Perl脚本) 3. 准备SVN仓库的完整访问路径(需英文路径[^2]) #### 二、核心迁移步骤 1. **生成作者映射文件** ```bash # 创建authors.txt文件,格式示例: john = John Doe <john@example.com> ``` 2. **克隆SVN仓库** ```bash git svn clone <SVN_URL> --no-metadata --authors-file=authors.txt -s ``` 参数说明: - `--no-metadata`:清除SVN元数据 - `-s`:标准布局(trunk/branches/tags) 3. **转换分支结构** ```bash for branch in `git branch -r | grep -v trunk`; do git branch ${branch#*/} $branch done ``` 4. **清理历史记录** ```bash git filter-branch --tree-filter 'rm -rf .svn' -- --all ``` #### 三、验证迁移结果 1. 检查提交历史完整性 ```bash git log --graph --oneline ``` 2. 验证分支映射关系 ```bash git branch -av ``` #### 四、常见问题解决 1. **作者信息错误** - 症状:`Author: unknown` - 解决方案:补充完善authors.txt文件后执行: ```bash git svn fetch --authors-file=authors.txt ``` 2. **路径访问失败** - 错误示例:`unable to connect to repository` - 解决方法: 1. 确认SVN服务正常运行 2. 检查仓库路径是否包含中文(需改为英文路径) 3. 验证用户权限 #### 五、迁移后优化 1. 压缩仓库体积: ```bash git gc --aggressive ``` 2. 添加Git远程仓库: ```bash git remote add origin <GIT_REPO_URL> git push -u origin --all ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值