扫码关注官方订阅号
还有就是,为什么不同步,就拉不了代码了呢? 我也是只知道这个结论,不知道为什么。
ringa_lee
刚刚看到你的问题有点儿不太理解,什么叫做:
在linux线上修改代码
后来我明白了,你的意思应该是你直接在远程服务器上对代码进行了修改。如果我理解的没错的话,你可以参考一下我的建议。
首先,在线上修改代码其实是很不好的做法,当然如果你在线上也进行了提交的话,那么这样也并没有错(第三方托管平台Github就支持这样做)。其实,并不是像楼主所说的:
就拉不了git
只是你处理的方法不对。你设想一下这样的情况:假如你在一台电脑上克隆了一个本地仓库,这个时候你本地和远程是一致的;可是另一个队友也在他的电脑上克隆了一个本地仓库,并做了一些提交,然后推送到了远程。之后,你在完全不知情的情况下,也做了一些提交,但还没有推送到远程。这时,你本地的代码就和远程不一致了,此时的这个状况不就和你现在这个状况一样吗?
这种情况是很常见的,我猜测你可能直接用了git pull命令,然后遇到了git不能自动解决的冲突或者其他git不能处理的问题,所以无法拉取。建议你先使用git fetch命令,然后再通过git merge remotes/origin/master手动合并。当然如果楼主肯把自己的解决过程以及错误提示贴出来的话,我们就能对症下药了,否则我也只能这样猜测了。
git pull
git fetch
git merge remotes/origin/master
另外,我猜测你是在本地的master分支上直接开发的,其实并不推荐这样做。推荐的做法是,另创建一个特性分支,在该分支开发后,再进行合并。这样的话,本地的master分支可以始终通过git pull命令与远程保持一致,合并时,也只是解决本地master与本地其他分支的冲突。虽然,过程与前面差不多,但是这种更安全一些。
可是如果你是自己搭建的服务器,然后你又直接在服务器上对代码做了修改,虽然我没有遇到过这样的情况,但是我觉得这样的情况除了撤销修改很难有好的处理办法。我很期待其他人的解决方案。
修改完之后 请 git add .,然后 git commit -m "some desp",然后就可以 git pull了
git add .
git commit -m "some desp"
首先,你存在一个严重的错误。git 的配置文件.git是不能放到生产环境的。否则会有安全隐患,你源代码可能会暴露。其次,在线上修改代码,你要 push 到origin 仓库后,才可以在线下 pull 到的。最后,非常不建议你在线上修改代码。造成你这种行为的原因,肯定是代码的部署流程过于简陋的结果。
.git
你这操作流程就不规范,如果线上代码是基于关联的某个git版本实现的自动推送的话,那就去找到版本进行更新推送到远端,然后让自动关联推到线上,如果线上版本本身就是某个分支的话,虽然不太好吧,也可以去相应分支修改然后推送到远端,服务器端实现拉取代码即可,其实是服务器线上代码怎么管理的问题,这个想清楚了其实就好处理了
楼主说的在在linux线上修改代码这句话感觉有些问题,可能是想表达在生产环境中修改代码,其实这个问题不关乎是否是linux 的问题。 三楼 Fighting_Bird 同学的回答,很全面,你可以参考一下。 最后,并不建议在线上生产环境做代码推送操作
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
刚刚看到你的问题有点儿不太理解,什么叫做:
后来我明白了,你的意思应该是你直接在远程服务器上对代码进行了修改。如果我理解的没错的话,你可以参考一下我的建议。
首先,在线上修改代码其实是很不好的做法,当然如果你在线上也进行了提交的话,那么这样也并没有错(第三方托管平台Github就支持这样做)。其实,并不是像楼主所说的:
只是你处理的方法不对。你设想一下这样的情况:假如你在一台电脑上克隆了一个本地仓库,这个时候你本地和远程是一致的;可是另一个队友也在他的电脑上克隆了一个本地仓库,并做了一些提交,然后推送到了远程。之后,你在完全不知情的情况下,也做了一些提交,但还没有推送到远程。这时,你本地的代码就和远程不一致了,此时的这个状况不就和你现在这个状况一样吗?
这种情况是很常见的,我猜测你可能直接用了
git pull
命令,然后遇到了git不能自动解决的冲突或者其他git不能处理的问题,所以无法拉取。建议你先使用git fetch
命令,然后再通过git merge remotes/origin/master
手动合并。当然如果楼主肯把自己的解决过程以及错误提示贴出来的话,我们就能对症下药了,否则我也只能这样猜测了。另外,我猜测你是在本地的master分支上直接开发的,其实并不推荐这样做。推荐的做法是,另创建一个特性分支,在该分支开发后,再进行合并。这样的话,本地的master分支可以始终通过
git pull
命令与远程保持一致,合并时,也只是解决本地master与本地其他分支的冲突。虽然,过程与前面差不多,但是这种更安全一些。可是如果你是自己搭建的服务器,然后你又直接在服务器上对代码做了修改,虽然我没有遇到过这样的情况,但是我觉得这样的情况除了撤销修改很难有好的处理办法。我很期待其他人的解决方案。
修改完之后 请
git add .
,然后git commit -m "some desp"
,然后就可以git pull
了首先,你存在一个严重的错误。git 的配置文件
.git
是不能放到生产环境的。否则会有安全隐患,你源代码可能会暴露。其次,在线上修改代码,你要 push 到origin 仓库后,才可以在线下 pull 到的。
最后,非常不建议你在线上修改代码。造成你这种行为的原因,肯定是代码的部署流程过于简陋的结果。
你这操作流程就不规范,如果线上代码是基于关联的某个git版本实现的自动推送的话,那就去找到版本进行更新推送到远端,然后让自动关联推到线上,如果线上版本本身就是某个分支的话,虽然不太好吧,也可以去相应分支修改然后推送到远端,服务器端实现拉取代码即可,其实是服务器线上代码怎么管理的问题,这个想清楚了其实就好处理了
楼主说的在在linux线上修改代码这句话感觉有些问题,可能是想表达在生产环境中修改代码,其实这个问题不关乎是否是linux 的问题。 三楼 Fighting_Bird 同学的回答,很全面,你可以参考一下。 最后,并不建议在线上生产环境做代码推送操作