返回介绍

FAQ

发布于 2024-09-08 19:20:07 字数 4757 浏览 0 评论 0 收藏 0

Q1 git 与 svn 集成

要先装软件 git-svn

svn 转化为 git

http://rongjih.blog.163.com/blog/static/335744612010620105546475/

  1. 本地 svn 先转化到本地 git
$ git svn clone file:///tmp/test-svn -T trunk -b branches -t tags

$ git svn clone file:///tmp/test-svn -s

  1. 获取 SVN 服务器的最新更新到转换后的 Git 仓库(这步通常在连续的转换过程中就没必要了) $ git svn rebase

  2. 转换 SVN 仓库的 svn:ignore 属性到 Git 仓库的 .gitignore 文件 $ git svn create-ignore

  3. 转换 SVN 的标签为 Git 标签

$ cp -Rf .git/refs/remotes/tags/* .git/refs/tags/
$ rm -Rf .git/refs/remotes/tags
  1. 转换 SVN 的分支为 Git 分支
$ cp -Rf .git/refs/remotes/* .git/refs/heads/
$ rm -Rf .git/refs/remotes
  1. 最后把转换后的本地 Git 仓库推到公共的 Git 服务器
$ git remote add origin [远程 Git 服务器地址]
$ git push origin master --tags

git VS svn

1) 支持的传输协议

svn: http/https, svn (缺省端口 9418)
git: http/https, git (缺省端口 9418), ssh, rsync

$man git-clone 可查看支持的 URL 格式

2) 缺省服务启动

svn: $svnserver –d --listen-port /home/denny/svnrepos
git: $git-daemon --reuseaddr –port=9418 --base-path=/home/git

3) 对比

  • 仓库管理:svn 集中式管理, git 分布式管理,可以多个中心。
  • 权限管理:svn 可设置目录级的权限,git 都可读,只能设写限制。
  • 应用范围:svn 公司多项目开发一仓库,git 单一开源软件仓库。
  • 签出:svn 允许部分签出,Git 只能全部签出。

Q2 中文乱码问题

在 Git 中,中文乱码问题通常出现在以下几个方面:

  1. 文件名或路径中的中文乱码

    • Git 在某些操作系统或终端中对中文路径支持不佳,可能导致乱码。尤其是在 Windows 系统上,中文路径可能会出现编码问题。
  2. 提交信息或注释中的中文乱码

    • 提交信息或注释中的中文字符可能因为编码不一致而显示为乱码。

解决方案

1. 设置 Git 的编码

确保 Git 使用正确的字符编码。可以通过配置 Git 的设置来解决提交信息和注释中的乱码问题。

  • 全局配置编码

    git config --global core.quotepath false
    git config --global i18n.commitEncoding utf-8
    git config --global i18n.logOutputEncoding utf-8
    
    • core.quotepath false :禁止 Git 对文件路径进行转义,从而避免中文路径乱码。
    • i18n.commitEncoding utf-8 :设置提交信息的编码为 UTF-8。
    • i18n.logOutputEncoding utf-8 :设置日志输出编码为 UTF-8。

2. 检查和调整终端设置

确保你使用的终端或命令行工具支持 UTF-8 编码。许多现代终端(如 Windows Terminal、PowerShell、macOS Terminal 和 Linux 终端)默认支持 UTF-8。

  • Windows Terminal

    • 右键点击终端窗口标题栏,选择 “属性” 或 “默认值”,在 “字体” 选项卡中选择支持 UTF-8 的字体(如 “Consolas”)。
  • PowerShell

    • 设置编码为 UTF-8:

      $OutputEncoding = [System.Text.Encoding]::UTF8
      

3. 解决文件名和路径的乱码

如果文件名或路径中出现中文乱码,可以尝试以下方法:

  • 重新命名文件

    • 使用 Git Bash 或其他支持 UTF-8 编码的终端,重新命名乱码的文件。
    git mv oldname newname
    
  • 修改文件名编码

    • 对于 Windows 上的 Git 用户,可以通过以下命令修复文件名的编码问题:

      git config --global core.legacyheaders false
      

4. 确保文件编码一致

确保你的代码文件使用 UTF-8 编码,尤其是在多操作系统环境中。可以使用文本编辑器(如 VSCode、Sublime Text)来检查和设置文件的编码。

  • 在 VSCode 中
    • 打开文件,点击右下角的编码信息(如 UTF-8 ),选择 “保存带编码” 来确保文件使用 UTF-8 编码。

总结

处理 Git 中的中文乱码问题主要涉及设置正确的编码、确保终端支持 UTF-8、以及处理文件名和路径的乱码。通过配置 Git 的编码设置、调整终端的编码支持,并确保文件使用一致的编码,可以有效解决这些问题。

Q3 远程 git 命令找不到

add to .git/config
[remote "origin"]
     fetch = +refs/heads/*:refs/remotes/origin/*
     url = ssh://qfwu@61.145.124.165:37856/~/git/yyusmodel
     uploadpack = ~/app/bin/git-upload-pack
     receivepack = ~/app/bin/git-receive-pack

Q4 git svn Can't locate SVN/Core.pm

$ cd ${SVN_SRC_PATH}
$ make swig-pl
$ make check-swig-pl
$ sudo make install-swig-pl

用 PERL 安装所需模块:

$ perl -MCPAN -e shell
cpan> install XXX:XXX

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文