windows平台是上的sublime编辑远程linux平台上的文件

时间:2021-12-04 03:02:32

sublime是个跨平台的强大的代码编辑工具,不多说。
想使用sublime完毕linux平台下django网站的代码编辑工作以提高效率(原来使用linux下的vim效率较低,适合编辑一些小脚本)。

下载linux平台下的Sublime_Text_2.0.2_x64.tar.bz2()

解压使用:
tar -xjvf Sublime_Text_2.0.2_x64.tar.bz2
cd Sublime\ Text\ 2/

运行
./sublime_text 

报错
./sublime_text: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11‘ not found (required by ./sublime_text)
./sublime_text: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9‘ not found (required by ./sublime_text)
./sublime_text: /lib64/libc.so.6: version `GLIBC_2.11‘ not found (required by ./sublime_text)

原因是所使用的系统为centos5,版本号过低,c/c++库版本号过低。
公司的电脑不能随便升级库或者升级系统,仅仅能另想办法。


设想一:
linuxserver上的代码拉下来存放在windows机器上,使用windows平台上的sublime对其进行编辑,之后又一次上传到linuxserver中。

问题:代码编辑后通常须要实际执行调试,尤其是网站类型的代码。经常须要编辑好后立马验证一下显示结果。而我们的整个执行环境是搭建在linux平台下的,如此一来,便须要先将代码从linuxserver拉倒windows平台,修改一个地方后又一次传回linuxserver,測试执行。若有问题则又一次拉下来编辑。又一次上传、測试。如此下去。很繁琐耗时。有没有一种更好的办法?

设想二:
在linuxserver上使用git为代码建立仓库,在windows上clone该仓库。使用sublime对clone下来的仓库中的代码进行编辑。编辑完毕后一条push命令将全部提交的更新内容推到远程的代码仓库中进行測试。过程与设想一类似,改进之处在于使用git命令来向远程linuxserver推更新,而不是手工逐个将更新的文件上传到远程server。



不知道有没有问题,先试试看:
之前已经在linuxserver上创建了代码仓库。位置为
/var/www/site/mycitsm
直接使用 /var/www/site/mycitsm文件夹下的.git文件夹创建供其它机器clone的代码仓库
sudo git remote add origin ssh://[email protected]:PORT/var/www/site/mycitsm/.git

之后远程机器就能够使用
git clone ssh://[email protected]:PORT/var/www/site/mycitsm/.git d:/www/mycitsm
该命令将远程server上的代码仓库拉倒本地d:/www/mycits文件夹中

我们在windows平台上下载安装Git-1.9.2()或者第三方的gitHub等等
clone仓库:
进入git bash(安装Git后创建的命令行工具)
$git clone ssh://[email protected]:PORT/var/www/site/mycitsm/.git d:/www/mycitsm
可能提示让输入远程server上op1的password,,(假设将本地server的公钥写进了远程server的authorized_keys文件则无需password就可以。详细可參考怎样设置无passwordSSH至远程主机,Windows系统与linux系统之间与linux系统与linux系统之间的设置方法是同样的。)
也可能提示找不到git-upload-pack,这是由于远程server中git安装的位置不是标准的默认位置。仅仅须要将这些工具拷贝到标准的位置,或在标准位置设置软连接连接至这些工具就可以。也能够在clone命令中指定工具的位置如: --upload-pack /home/op1/bin/git-upload-pack。



此后远程仓库中的文件夹结构和内容被clone到了本地windowsserver的d:/www/mycitsm文件夹中了,能够使用sublime直接打开该文件夹对内部的文件进行编辑。



在git bash中进入本地仓库
$cd d://www/mycitsm

查看git状态
$git status

提交变化
$git add filename
$git commit -m "some text"

将本地仓库推到远程仓库
$git push (origin master)

报错:
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require ‘git reset --hard‘ to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set ‘receive.denyCurrentBranch‘ configuration variable to
remote: error: ‘ignore‘ or ‘warn‘ in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: ‘receive.denyCurrentBranch‘ configuration variable to ‘refuse‘.
To ssh://[email protected]:1022/var/www/site/mycitsm/.git
 ! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to ‘ssh://[email protected]:1022/var/www/site/my
citsm/.git‘

意思为:默认情况下不同意在非裸仓库中更新当前分支,由于推送的内容会导致索引和工作文件夹树不一致。