个人备忘精简使用:

1、本地有文件,gitee里新建一个仓库;

2、本地init后,关联远程库(git remote add origin git@github.com:michaelliao/learngit.git),然后试图push本地文件到远程空库去(先给本地文件add+commint推到暂存区去,然后推远程git push -u origin master)(第一次带个-u,这样以后就不用每次加上远程库名字+分支名了),此时就会报错,那么就给远程自动创建的东西拉取到本地,同步一下(见下面二.1);

3、可以正常推到远程了(git push即可);

4、有修改,就add+commint+git push,完成一次保持到远程库;

 

5、另外一台电脑,先找个目录用来存放从远程库拉取的数据,尽量都是英文名的目录,然后git init初始化;

6、直接git clone git@github.com:michaelliao/gitskills.git克隆远程库到本地,会发现多了一个子目录,而非当前目录;

7、进入带文件的子目录,右键打开git bash对话框,此时无须add+commint;

8、如有修改,则add+commit+git push完事;

9、远程库有更新,则直接git pull,pull后也无须add+commint,只有有修改的时候才需要add+commit+git push;

 

看完了教程,又动手实践了下,基本已经掌握GIT用法,这里记录一下;

 

一、基本应用,安装好GIT后,打开git bash;

1、windows下进入某个目录,并创建一个用来存放git项目的目录

 2、进入创建的git目录,并初始化一下,此时项目是空的,初始化后对应的仓库就建立了;

 3、现在有两种使用场景,一种是我本地有文件,但是gitee这个远程仓库没有;另外一种是gitee已有项目,如何本地操作后再远程上去;

 

二、先说第一种,我本地有文件,但是gitee这个远程仓库没有;

1、首先gittee建立项目,以及项目的仓库(登录你的gitee建立吧),此处可以参考别人的教程:https://www.liaoxuefeng.com/wiki/896043488029600/898732864121440操作方法也在里面写的有;

有个问题就是第一次上传东西到空仓库,会出错:failed to push some refs to git,原因在于没有把空仓库刚才手动创建的readme文件同步到本地(以上教程说的是空仓库的时候,这里因为gitee在创建仓库后提示你最好创建一个readme什么的,你可能点了,就不是空仓库了,就会第一次出现这个错误,解决方法输入 git pull --rebase origin master 先,给远程库的更新先同步到本地,然后再试)

 

2、先给你的本地(工作区)存到本地git暂存区

git add * 

 

3、提交到本地的GIT仓库中,默认初始化时创建的master仓库

git commit -m "first commit"

 

4、建立你本地与远程仓库的链接,远程库的名字origin,就是在建立链接时确定的,可以随便起,只用在你这台电脑上

git remote add origin git@github.com:xxxxx/xxx001.git

 

5、开始给你的本地库推送到远程库中

git push -u origin master
-u 只用在第一次全部推送到远程库而且远程库是空的时候,如出错见上面的第1条;

-u 参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令=》只写git push即可。

 

6、接下来的修改推送到远程,只需要git push即可

git push

 

三、第二种情景,只有远程库,想在本地操作后再推送回去

1、本地初始化一个目录,进入该目录后,克隆一个远程仓库

git init
git clone git@gitee.com:XXXXX/xxxxx.git

链接方式有两种,上面这是SSH方式,其需要配置公钥,具体见廖雪峰的教程;

 

2、第一次过程中需要输入个yes,然后就是回车

 

3、接下来就是你修改后,正常的push即可

 

四、服务器上的项目,改为从仓库拉取更新

 1、宝塔进入对应网站目录,点击终端按钮(宝塔新版本有这个功能)

 

2、打开会自动cd到本目录,免去自己cd的步骤了;光标开始闪烁后,输入git,查看服务器是否已经安装了git,如果没有请自行安装;

3、初始化git,输入git init

4、因为网站目录不为空,所以先给本目录的东西加入到本地库(就是刚初始化的git仓库),git add *  =>  git commit -m "all stage"

5、现在git branch,查看本地仓库状态,发现能正常出来master主仓库了;

6、下面开始建立与远程仓库的链接(我的仓库用的gitee)

 你可能注意到了我用的是https的链接方式(这种方式会有点繁琐,需要过程中输入口令,你可以视情况改为SSH链接--SSH链接需要先配置公钥)

 

7、接下来直接强制拉取发现拉取不了,方法是需要重新fetch一下

 

得到远程仓库信息后,再次强行拉取远程数据到本地master仓库

因为我们并不在服务器上进行修改操作,所以服务器一般只有一个默认仓库master,这样拉取更新时,可以指定拉取的仓库

git fetch hmser master

8、解下来就用git pull拉取,直接拉取不来,就带上远程库的名字以及本地库的名字

 (实际上,有时候这样也拉不了,会有各种报错,根据报错搜对应答案吧,pull之前,最好先git status一下)

9、搞定,已经拉取了最新的;(这样平时修改就是在自己的电脑上,推送到远程仓库gitee后,没有问题,就进服务器的宝塔中如上操作更新一波)

10、日常就不要直接修改服务器上的文件了,需要更新时,直接git pull hmser master从远程库中拉取最新即可;

解释下我的远程库名字hmser,这个可以随便起,一般教程里用的都是ororigin,在与远程库连接时,你用的啥就是啥

 

五、使用经验

1、以远程库为中心,远程库的master是稳定版,dev是开发板

2、在本地切换到dev进行开发,push也对应远程仓库的dev

3、修改确定后,给dev合并到本地主仓库master,先切换到master,再git merge dev(会弹出合并的理由,填写下,给编辑器关上,即可自动合并并commit),此时再push就对应远程仓库的master

4、实际使用中,服务器的某个文件或许会因操作后台而变化,导致文件变动了,pull的时候提示对应信息,拉取不了,此时就是强制git reset --hard回到上次版本处,再拉取,至于那个变化的文件,如果有需要后台操作的地方,再操作一次吧,或者下次给设置为不拉取此文件(错误提示:commit your changes or stash them before you can merge.);

 

posted on 2021-06-09 14:14  宕样  阅读(76)  评论(0编辑  收藏  举报