引言

虽然通过scp等方式也可以实现文件传输,但是今天介绍一种新的方法,通过git的git push和git pull实现不同设备之间的文件传输。

云端

在云端,我们首先需要建立一个用于文件传输的仓库,这个仓库可以建立成私有状态。

linux端

在linux端和win的git中都需要登录你的github账号。

在发送端,我们首先需要使用git init在本地新建一个仓库,然后添加进关联的云端仓库,使用git remote add的方式添加。

然后我们首先需要将本地的分支与远端的main分支关联,这里和之前博客中写的那样,首先使用-u的方式关联,之后通过git push就可以。

做完这些基础操作之后,以后需要将实验室的台式机linux系统,与笔记本的win系统进行文件传输的时候,就可以:

1、将待共享的文件拖入共享文件夹(仓库)中;

2、git add .

3、git commit -m ""

4、git push

然后,做到这里,我又觉得有些麻烦,那我们其实可以通过脚本的方式,进行后面的操作,脚本这样写就可以:

gnome-terminal -x bash -c "git add .;git commit --amend --no-edit;git push -f;exec bash"

这句话实现的首先开启一个终端,然后在终端中执行上述代码,同时在commit阶段,由于不需要什么版本控制,可以使用--amen --no-edit代替 -m的操作。

最后

1、将文件保存为.sh文件;

2、然后右键属性,将可以将文件作为可执行文件打开选中。

以后就可以实现,将文件拖入,再双击脚本,就能同步到云端仓库的操作了。

当作为接受端时,同样地,可以写一个脚本:

gnome-terminal -x bash -c "git fetch --all;git reset --hard origin/main;exec bash"

win端

在win端,同样的操作,首先建立仓库,然后再关联云端仓库,当然我们也会希望通过脚本这种简单的方法进行如上操作,因此有了如下代码:

start D:\git\Git\git-bash.exe -c "git fetch --all && git reset --hard origin/main"
start D:\git\Git\git-bash.exe -c "git add . && git commit --amend --no-edit && git push -f"

最后需要注意,当一个空的仓库和远端仓库关联时,需要首先在本地空的仓库新建一个分支如

git checkou main

May the force be with you!