最近需要用MATLAB在远程的服务器上的GPU跑深度学习的程序,但是可视化连接了远程服务器以后,操作非常的卡顿,所以我就在本机上调试好代码,在本机的cpu下跑通了,再搬到服务器上改一下配置用GPU去跑。整个过程,需要在本机修改代码然后考到服务器,然后可能服务器上改了某些东西又要考回本机,所以这样操作起来非常麻烦。
于是,想到了可以用git在服务器上自己建一个仓库,然后在本地拉下来这个仓库的内容就行了。这样,可以实现本地的代码和服务器的代码实时的实现同步。而且不需要通过github网站,也不用担心代码的安全性。
前提条件是,已经在服务器建立了一个远程仓库,然后打算在本地建立一个仓库,使得这两个仓库同步。
首先在本地建立一个空的仓库
git init
然后,在本机建立与远程服务器的连接(关键就在这)
git remote add origin ssh://zycui@202.117.3.78/home/zycui/zycui_data/code/matconvnet-1.0-beta25/
这条命令表示添加与远程仓库的连接,ssh是通信协议,zycui是远程主机的用户名,然后是ip地址,然后是文件的路径。这个时候,本地的这个文件夹和远程的文件夹就实现了连接。
然后
git fetch origin master
表示将远程的master分支拽到本地来,然后
git merge origin/master
这句将本地分支与远程分支合并(我本地分支是空的,啥都没有,所以合并可以自动完成,不需要手动的去看了)
经过这一步以后,在本地分支就可以看到完整的代码了。
然后,当本地有更改了以后,需要使用git push 名字推到远程,然后在远程用git merge 进行合并。
当远程有了更改以后,在本地用git fetch 把远程的拽下来,然后git merge到本地的分支就可以了。
可以看到合并以后的效果
gitk --all
如图
可以看到,我本地有两个分支,分别是master和Windows,然后还有一个远程分支是romotes/origin/master,三个分支现在是完全同步的。