zoukankan      html  css  js  c++  java
  • 学习GIT个人笔记

    看完了教程,又动手实践了下,基本已经掌握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.);

  • 相关阅读:
    String
    Map和Set
    js的栈与堆
    js的私有属性
    随便谈一谈原型
    前端页面优化提速
    nth-child和nth-of-type
    重复输出字符串
    闭包
    mongodb内嵌文档的查询
  • 原文地址:https://www.cnblogs.com/ss159/p/14855710.html
Copyright © 2011-2022 走看看