本地电脑代码通过git同步到服务器上方法

在开发和研究过程中,您可能需要将本地已有的 Git 仓库复制到远程服务器上,并通过 Git 来保持二者的同步。本文将介绍如何将本地 Git 仓库复制到远程服务器,并允许推送更改到检出的分支。

一:本地已有 Git 仓库

首先,确保您在本地已经有一个 Git 仓库。如果还没有,您可以使用以下命令初始化:

cd /path/to/your/local/LUTO git init

二、将本地仓库复制到远程服务器

1. 在远程服务器上创建目录

登录到远程服务器,并创建一个用于存放 Git 仓库的目录:

ssh xp@gadi.nci.org.au mkdir -p /scratch/jk53/LUTO_XH/LUTO2

2. 将本地仓库直接复制到远程

使用 scp 或 rsync 将本地仓库复制到远程服务器:

scp -r /path/to/your/local/LUTO xp@gadi.nci.org.au:/scratch/jk53/LUTO_XH/LUTO2

3. 在远程服务器上检查文件

登录到远程服务器,确认文件已成功复制:

ssh xp7241@gadi.nci.org.au cd /scratch/jk53/LUTO_XH/LUTO2 ls -a

确认 .git 目录存在,表示仓库已完整复制。

三、配置远程仓库

1. 在远程服务器上初始化 Git 仓库

如果 .git 丢失,或者需要重新初始化远程仓库,运行以下命令:

git init

2. 设置 Git 配置允许推送到检出的分支

由于默认情况下,Git 不允许推送到当前检出的分支,您需要修改远程仓库的配置:

git config receive.denyCurrentBranch ignore

这将允许您直接推送到当前检出的分支(如 master)。

四、在本地连接远程仓库

1. 添加远程仓库

在本地仓库中,添加远程服务器的仓库作为远程:

cd /path/to/your/local/LUTO git remote add nci xp@gadi.nci.org.au:/scratch/jk53/LUTO_XH/LUTO2

2. 检查远程仓库是否添加成功

使用以下命令验证远程仓库的配置:

git remote -v

输出类似以下内容:

nci xp@gadi.nci.org.au:/scratch/jk53/LUTO_XH/LUTO2 (fetch) nci xp@gadi.nci.org.au:/scratch/jk53/LUTO_XH/LUTO2 (push)

五、推送本地更改到远程仓库

1. 推送本地仓库到远程

使用以下命令将本地的 master 分支推送到远程服务器:

git push -u nci master

2. 同步远程仓库的工作目录

推送完成后,远程仓库的工作目录需要与最新的提交同步。在远程服务器上运行以下命令:

ssh xp@gadi.nci.org.au cd /scratch/jk53/LUTO_XH/LUTO2 git reset --hard

这将确保远程仓库的工作目录与最新提交保持一致。

六. 创建钩子

在本地仓库的 .git/hooks/ 目录下创建 post-commit.cmd 文件,并添加以下内容:

@echo off REM post-commit hook script REM Push changes to the remote repository on the server git push a2h master

创建 post-merge.cmd 文件,并添加以下内容:

@echo off REM post-merge hook script REM Push changes to the remote repository on the server git push a2h master

七、注意事项

在Git中配置自动换行符处理
你可以在Git中配置自动换行符处理,以确保在推送和拉取代码时,Git会自动转换换行符。

设置Git配置
在你的本地仓库中,使用以下命令配置Git:git config core.autocrlf input
否则会遇到错误

sbatch: error: Batch script contains DOS line breaks (\r\n) sbatch: error: instead of expected UNIX line breaks (\n).

因为Windows使用的是CRLF(\r\n)作为换行符,而Unix/Linux系统使用的是LF(\n)作为换行符。当你将脚本从Windows同步到Linux服务器时,换行符格式会不一致,从而导致这个错误。


__EOF__

本文作者skypanxh
本文链接https://www.cnblogs.com/skypanxh/p/18304411.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   skypanxh  阅读(336)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示