FAQ
Q1 git 与 svn 集成
要先装软件 git-svn
svn 转化为 git
http://rongjih.blog.163.com/blog/static/335744612010620105546475/
- 本地 svn 先转化到本地 git
$ git svn clone file:///tmp/test-svn -T trunk -b branches -t tags
或 $ git svn clone file:///tmp/test-svn -s
获取 SVN 服务器的最新更新到转换后的 Git 仓库(这步通常在连续的转换过程中就没必要了)
$ git svn rebase
转换 SVN 仓库的
svn:ignore
属性到 Git 仓库的.gitignore
文件$ git svn create-ignore
转换 SVN 的标签为 Git 标签
$ cp -Rf .git/refs/remotes/tags/* .git/refs/tags/
$ rm -Rf .git/refs/remotes/tags
- 转换 SVN 的分支为 Git 分支
$ cp -Rf .git/refs/remotes/* .git/refs/heads/
$ rm -Rf .git/refs/remotes
- 最后把转换后的本地 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 中,中文乱码问题通常出现在以下几个方面:
文件名或路径中的中文乱码 :
- Git 在某些操作系统或终端中对中文路径支持不佳,可能导致乱码。尤其是在 Windows 系统上,中文路径可能会出现编码问题。
提交信息或注释中的中文乱码 :
- 提交信息或注释中的中文字符可能因为编码不一致而显示为乱码。
解决方案
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论