使用Git在本地Windows下布置或实时更新服务器linux上的项目

背景:昨天把自己的项目从Windows移植到服务器上,但有一些小细节要更改。在服务器上改又太慢,在本地改使用Xftp又得自己定位到改的地方,然后再覆盖,同时可能会出现端口占用的情况。最终还是Git方便同时还顺带有很多其他的功能。

零、需要去Git官网注册个账号

https://github.com/

一、下载安装

1.1在windows 下安装git

https://git-scm.com/downloads

直接默认安装下一步即可

1.2在linux 下安装git

sudo yum install git
sudo atp-get install git

二、在Git创建库

登录账号后,在右上角点击Your repositories

在这里插入图片描述

左上角新建New

在这里插入图片描述

新建一个testGit库

在这里插入图片描述
在这里插入图片描述

二、配置

2.1windows配置

1、安装完成后打开Git Bash

在这里插入图片描述

2、使用Shell命令定位到你的项目的目录下

在这里插入图片描述

3、初始化,将目录变成Git可管理的目录

在这里插入图片描述
它会在目录下自动生成一个.git的隐藏文件
在这里插入图片描述

4、配置自己的Git账号

git --global config user.email "刚才注册Git的邮箱"
git --global config user.name "刚才注册Git的用户名"

5、连接远程库

git remote add origin [email protected]:用户名/testGit.git

在这里插入图片描述

6、创建ssh-key

ssh-keygen(一直回车)

在这里插入图片描述
他会自动生成私有钥(对公有钥进行解码用的,不要告诉任何人)和公有钥,其中一行中的id_rsa.pub表示公有钥,id_rsa表示私有钥

7、将公有钥添加到Github上,获得权限

cat /c/user/shinelon/.ssh/id_rsa.pub

把内容复制下来(注意复制要完整),然后点击github右上角的设置
在这里插入图片描述
点击SSH开头,点击New。起个名字,将刚才复制的公有钥放进去。点击Add SSH key
在这里插入图片描述

8、将项目下的所有文件提交到刚才建立的私有库testGit

add是添加 | commit是提交 | -m是提交说明 | pull 拉 | push是推送 | -u是将本地的master分支与远程的master分支关联起来(第一次需要用) | origin是远程库的默认名,可以换名 | mater是分支名称

–allow-unrelated-histories 允许相关的两个库合并,将本地和远程两个项目合并(实际就是把刚创建的库中的LICENSE文件pull到本地)

注:因为新建库里没东西才用这个命令。如果你在自己新建的分支上进行add和commit你会再次看到类似的fatal,类似 origin/master test1 如果你在test1分支下设置了允许合并后–allow-unrelated-histories,你的分支test1会直接绕过master再次和你的项目合并。
那如果不想允许两个库合并呢?
方法是先在github上创建库然后clone到本地,配好公有钥后同样使用分支add commit等命令操作,相当于你把项目手动放进clone好的的本地库,提交时在更新到远程库
git add .
git commit -m "这是一次测试"
git pull origin master --allow-unrelated-histories (如果打开了文件直接:q 退出)

在这里插入图片描述

出现这个的话就:使用管理员方式打开记事本,再使用记事本打开C:\Windows\System32\drivers\etc下的hosts文件,添加如下
13.250.177.223 github.com

git pull origin master --allow-unrelated-histories (再拉一次)

在这里插入图片描述
git push -u origin master
在这里插入图片描述

查看,本地和远程库已同步

在这里插入图片描述
在这里插入图片描述

2.2linux配置

假设这是你网站项目的位置:/var/www/testGit

1、生成ssh-key

直接在linux中输入(和刚才windows一样一直enter)

ssh-keygen

2、将公有钥添加到Github上,获得权限

cat /root/.ssh/id_rsa.pub

复制公有钥到Github的SSH管理

3、克隆你的刚才在windows上传的项目

cd /var/www

复制项目地址
在这里插入图片描述

git clone [email protected]:你的名字/testGit.git

在这里插入图片描述
chmod 777 /var/www/testGit

三、实时更新

1、在windows下创建和使用分支

创建

git branch test1

切换分支

git checkout test1

查看目前所在分支
在这里插入图片描述

2、本地提交新修改的文件到github,例如我在Windows下改了code

建议不要使用记事本编辑,因为可能会出现编码错误!我使用的是sublime test3
在这里插入图片描述

这时test1分支的测试.txt内容如下

在这里插入图片描述

git checkout master

这时master分支的测试.test内容如下

在这里插入图片描述
所以更改完后,需要讲结果合并到master再提交到github才有效

git merge test1  (合并分支,将更改结果合并到master)

再看测试.txt
在这里插入图片描述

现在可以将更改的内容提交到github了

git add .
git commit -m "实时更新测试(多人分支合作)"
git push origin master

在这里插入图片描述

github已更新

在这里插入图片描述

3、linux上pull取windows上更新的内容

更新前

在这里插入图片描述

git pull
更新后

在这里插入图片描述

(4、多人分支合作)

同样的道理,在linux上也和windows一样创建分支再合并分支,相当于两个人在操作一个项目。

上面使用了分支其实是可以省略的,直接在master分支上更改再提交也可以。但使用新分支写代码的好处是,当你改错了代码或者进行了一些误操作时,不会对你的master产生任何影响,因为你并没有merge。


知识分享:https://www.liaoxuefeng.com/wiki/896043488029600

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章