2020-04-01

Git版本控制

一、如何通过git将项目推送到github远程仓库

首先,电脑里需要安装了git,还有自己的github账户。
第一步:我们需要先创建一个本地的版本库(其实也就是一个文件夹)。然后在里面书写自己的项目
       mkdir projects
第二步:初始化:           
        进入这个文件夹, git init 
配置个人信息:
    # 全局配置个人信息
    git config --global user.name "username"
    git config --global user.email "email@qq.com"
查看git设置列表信息
     git config --list 
第三步:  1.通过git status查看当前文件的状态,也可以跳过这一步;
        2.通过git add '指定文件'  添加到仓库,
        3.或者通过git add .      把该目录下的所有文件添加到仓库。
第四步:提交:
        git commit -m "提交内容-描述"。
第五步:创建密钥、公钥SSH KEY。先看一下你C盘用户目录下有没有.ssh目录,有的话看下里面有没有id_rsa和             id_rsa.pub这两个文件,有就跳到下一步,没有就通过下面命令创建:

       ssh-keygen -t rsa -C "youremail@example.com"

 然后一路回车。这时你就会在用户下的.ssh目录里找到id_rsa和id_rsa.pub这两个文件。
 
 查看id_rsa.pub公钥:  1. cd ~/.ssh  
                    2. ls   
                    3.  cat id_rsa.pub 
第六步:登录Github,找到右上角的图标,打开点进里面的Settings,再选中里面的SSH and GPG KEYS,
       1.点击右上角的New SSH key,然后Title里面随便填,
       2.再把刚才id_rsa.pub里面的内容复制到Title下面的Key内容框里面,最后点击Add SSH key,完成钥匙配置
第七步:在Github上创建一个Git仓库。
 第八步:仓库进行关联:
        在Github上创建好Git仓库之后我们就可以和本地仓库进行关联了,根据创建好的Git仓库页面的提示,
        可以在本地TEST仓库的命令行输入:
 
        git remote add origin "远程仓库地址"
第九步:关联好之后我们就可以把本地库的所有内容推送到远程仓库(也就是Github)上了,通过:
       $ git push -u origin master

第十步:由于新建的远程仓库是空的,所以要加上-u这个参数,等远程仓库里面有了内容之后,
      下次再从本地库上传内容的时候只需下面这样就可以了:
      $ git push origin master

    这时候你再重新刷新你的Github页面进入刚才新建的那个仓库里面就会发现项目已经成功上传了.
第十一:远程仓库clone到 服务器项目文件夹中:
       git clone 远程仓库地址

二、常用远程推送失败等问题 、 解决方案:

问题一: error: failed to push some refs to '远程仓库地址'

1.解决方案:git pull --rebase origin master 
2.git push -u origin master               --"这样,就可以重放您的本地提交在新更新的原始/master之上。"

问题二:fatal: remote origin already exists.

 1、先输入$ git remote rm origin
 2、再输入$ git remote add origin   '远程仓库地址'

问题三:fatal: Could not read from remote repository.

1.远程仓库地址不对,查看一下 :   git remote -v 
2.然后在终端输入:               git remote set-url origin 远程仓库地址
3.重新push就可以了:            git push -u origin master    

二、git版本其他 命令

3.查看历史版本

git log
git reflog

git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log 不能察看已经删除了的commit记录

4.回退版本

方法一:

  • HEAD表示当前最新版本
  • HEAD^表示当前最新版本的前一个版本
  • HEAD^^表示当前最新版本的前两个版本,以此类推...
  • HEAD~1表示当前最新版本的前一个版本
  • HEAD~10表示当前最新版本的前10个版本,以此类推...
git reset --hard HEAD^

方法二:

当版本非常多时可选择的方案

# 通过每个版本的版本号回退到指定版本
git reset --hard 版本号

5.撤销修改

  • 只能撤销工作区、暂存区的代码

    • 撤销工作区代码

      git checkout 文件名
      
    • 撤销暂存区代码

      # 第一步:将暂存区代码撤销到工作区
      git reset HEAD  文件名
      # 第二步:撤销工作区代码
      git checkout 文件名
      
  • 撤销仓库区的代码就相当于回退版本操作

6.版本对比

  • 对比本地仓库库与工作区
    • 在工作区,修改文件
    • git diff HEAD -- test1.py
  • 对比本地仓库各版本代码
    • git diff HEAD HEAD^ -- test1.py

7.文件删除

  • 确定删除处理

    # 删除文件
    rm 文件名
    # git确定删除文件,对比添加文件git add 
    git rm 文件名
    # 删除后记录删除操作版本
    git commit -m '删除描述'
    
  • 误删处理,撤销修改

    # 删除文件
    rm 文件名
    # git撤销修改
    git checkout -- 文件名
    
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • Git 是目前最流行的分布式版本控制系统之一。 版本控制指的是,记录每次版本变更的内容和时间等细节,保留各版本之间...
    神齐阅读 1,409评论 0 7
  • Add & Commit git init 初始化一个 Git 仓库(repository),即把当前所在目录变成...
    冬絮阅读 4,804评论 0 8
  • Git是目前世界上最先进的分布式版本控制系统! 解释给小白:版本控制系统不但能自动帮我记录每次文件的改动,还可以让...
    imacoder阅读 261评论 0 1
  • 其实使用git已经有两年多时间了,但是对Git的概念一直懵懵懂懂,平时常用的命令就那么几个,而且大部分的时候都是直...
    Claire_wu阅读 596评论 0 5
  • 昨天在同事电脑上操作了一把cherry-pick代码,发现很多功能不用,就慢慢忘记了,梳理了下流程图: git c...
    gogoingmonkey阅读 664评论 0 0