Git - 如何在GitHub项目派生(跨平台开发)上跟踪和传播更改

时间:2018-04-18 04:29:45

标签: git permissions newline

我是Git的新手,需要解决一个简单的任务 在GitHub上有一个C ++中的交叉式开源项目,我需要修改/补丁。开发和调试必须在Windows(在Visual Studio中)上执行,生产环境在Ubuntu Linux上。我能够从GitHub克隆源代码并在两个平台上成功编译它们。

目标是跟踪和传播在Windows上进行的更改,并将它们传播到Linux以进行生产构建。我试图简单地将修改后的源目录从Windows复制到Linux,但是文件权限和行结尾存在问题(CRLF与LF)并且项目无法编译。

您能否向我推荐一些如何解决此问题的智能解决方案,即如何在Windows上跟踪源更改并将其提交到Linux构建计算机? GitHub项目是关于进度的工作,我也必须应用更新(它应该与GitHub保持联系)。

2 个答案:

答案 0 :(得分:0)

使用.gitattributes指令将文件eol转换为OS native eol

# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto

# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text

(使用core.eol is also possible

在" GitHub: Setup / Dealing with line endings: Per-repository settings"

中查看更多内容

这比core.autocrlf更为普遍 我recommend keeping that setting to false

git config --global core.autocrlf false

答案 1 :(得分:0)

我使用Git解决了这个问题,因为我在Windows和Linux上创建了自定义分支并切换到它,即

git checkout -b mybrach

然后在Windows端我使用

生成补丁文件
git format-patch .....

将它们传输到Linux机器上,然后使用命令

在那里应用补丁
git apply ...