zoukankan      html  css  js  c++  java
  • git学习(持续踩坑中🤣)

    https://segmentfault.com/q/1010000002457936

    常见指令:

    一、创建版本库

    $ mkdir learngit 创建文件夹
    $ cd learngit 进入文件夹
    $ pwd 显示当前目录
    $ git init把这个目录变成Git可以管理的仓库
    $ ls -ah 显示所有文件,包括隐藏文件
    $ git add a.txt 把a文件添加到仓库(一次只能添加一个)
    $ git commit -m “wrote a readme file” 把文件提交到仓库,后面的文字是本次提交文件的介绍文字(一次添加多个)

    二、时光机穿梭

    $ git status 查看文档修改状态
    $ git diff 查看修改的有哪些变化

    三、版本回退

    $ git log 查看提交历史
    $ git log —pretty=oneline 查看提交历史简洁版
    $ git reset --hard HEAD^ 回退到上一个版本
    // 或 git reset —hard HEAD~100(会退到前100版本)
    $ cat readme.txt 查看文件里面的内容
    $ git reset --hard 3628164 回退到指定版本(如果终端没有关闭)
    $ git reflog 记录每一次提交的命令

    四、工作区和暂存区

    五、管理修改

    六、撤销修改

    $ git checkout — readme.txt 把readme.txt文件在工作区的修改全部撤销
    $ git reset HEAD readme.txt 把暂存区的撤销掉,重新放回工作区

    七、删除文件

    $ rm test.txt 删除文件(删除后commit、删除后未commit)

    八、初始化仓库:

    Create a new repository on the command line

    touch README.md
    git init
    git add README.md
    git commit -m “first commmit”
    git remote add origin https://github.com..
    git push -u origin master
    

    Push an existion repository from the command line

    git push add origin http://….
    git push -u origin master
    

    第一次提交失败

    报错:

    error: failed to push some refs to 'git@github.com:xxxxxxx/xxxxxxxx.git
    
    hint: Updates were rejected because the tip of your current branch is behin
    
    hint: its remote counterpart. Integrate the remote changes (e.g.
    
    hint: 'git pull ...') before pushing again.
    
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    

    分析与解决:
    出现错误的主要原因是github中的README.md文件不在本地代码目录中
    可以通过如下命令进行代码合并【注:pull=fetch+merge]

    git pull --rebase origin master
    

    执行上面代码后可以看到本地代码库中多了README.md文件
    此时再执行语句 git push -u origin master即可完成代码上传到github

    九、撤销已经push到远端的文件的文件

    在使用git时,push到远端后发现commit了多余的文件,或者希望能够回退到以前的版本。

    先在本地回退到相应的版本:

    git reset --hard <版本号>
    // 注意使用 --hard 参数会抛弃当前工作区的修改
    // 使用 --soft 参数的话会回退到之前的版本,但是保留当前工作区的修改,可以重新提交
    

    如果此时使用命令:

    git push origin <分支名>
    

    会提示本地的版本落后于远端的版本;

    为了覆盖掉远端的版本信息,使远端的仓库也回退到相应的版本,需要加上参数--force

    git push origin <分支名> --force
    

    十、git拉取远程分支并创建本地分支

    一、查看远程分支

    使用如下Git命令查看所有远程分支:

    git branch -r
    

    二、拉取远程分支并创建本地分支

    方法一

    使用如下命令:

    git checkout -b 本地分支名x origin/远程分支名x
    

    使用该方式会在本地新建分支x,并自动切换到该本地分支x。

    方式二

    使用如下命令:

    git fetch origin 远程分支名x:本地分支名x
    

    使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout。


    划重点:每次我都要忘记!
    1.
    如果fork别人的项目或者是参与开源项目的开发,修改好了代码之后,一定要看看自己远端的版本是不是跟原项目的版本一致,如果不是请更新你的远端仓库,如果你在没有更新的情况下push上去了,再去pull request的时候,会出现冲突。
    为了不必要的麻烦,请保持自己的远端仓库与fork的远端仓库版本一致。


    H5mobile中用到的git流程:

    // step1:拉取远端分支
    git remote -v
    // git fetch origin dev:dev(错误)
    git fetch origin dev
    git checkout -b dev origin/dev
    git log
    git checkout master
    git log
    git checkout dev
    gst
    clear
    
    // step2:提交代码
    git pull origin dev // 当前在dev分支,拉取远端分支,与远端同步
    git status
    git add .
    git commit -m ''
    git status
    git push origin dev
    
    // step3:部署到测试环境
    ssh master@10.8.8.8
    ->输入密码
    -> yes
    cd mobileH5
    
    // 方案1:
    git checkout dev
    git pull origin dev
    npm run testprod
    // 方案2:
    git pull origin dev
    npm run dev
    // 之后打开http://10.8.8.8/mobile_......html(注意这里有没有端口号8001?80?。。)
    exit // 退出服务器
    
    // merge!!!!这里是合并到master!!!!!
    // step4:merge到master分支,打补丁,push到master
    cd mobileH5
    git pull origin dev  // 一定要检查一下是否是最新版本
    git checkout master
    git pull origin master  // 版本检查
    git merge dev // 将dev分支合并到当前分支(这里会进入vim)退出:shift+冒号 输入:wq(回车)
    git log   // 查看版本是否正确
    gulp patch  // gulp打补丁
    git push origin master  // push到master
    
    // step5:部署到test环境
    git merge dev
    
    
    
    PS:
    // 在本地npm run build文件
     3561  ls
     3562  cd deist
     3563  cd dist
     3564  ls
     3565  python -m SimpleHTTPServer 8080
    
    在Mac环境下执行Python脚本
    cd 到文件夹目录
    在文件首行添加#!/usr/bin/env python
    添加权限 chmod 777 filename.py
    执行脚本./filename.py
    简单脚本:files.py
    http://blog.csdn.net/hi_chen_xingwang/article/details/51569514
    

    mobileH5V2迭代之后的流程

    // 进入某一目录
    cd /var/folders/6y/kb5tt1qd6x56f90s180y6y0m0000gn/T/phantomjs
    // 将某一文件copy到当前目录
    cp ~/Desktop/phantomjs-2.1.1-macosx.zip
    
    
    npm run cli-create  // 输入这句之后后面会有提示让你输入文件名
    //启动项目
    npm start
    git pull guanghe mobileH5V2
    git remote add guanghe https://github.com/guanghetv/mobileH5V2.git
    git pull guanghe develop
    

    尚未整理

     5525  cd desktop
     5526  git clone https://github.com/Yfling/mobileH5V2.git
     5527  cd mobileH5V2
     5528  npm install
     5529* cd /var/folders/6y/kb5tt1qd6x56f90s180y6y0m0000gn/T/phantomjs
     5530* ll
     5531* cp ~/Desktop/phantomjs-2.1.1-macosx.zip .
     5532* ll
     5533  npm i
     5534  npm start
     5535  atom .
     5536  npm run cli-create
     5537  npm start
     5538  git pull guanghe mobileH5V2
     5539  git remote
     5540  git remote add https://github.com/guanghetv/mobileH5V2.git
     5541  git remote add guanghe https://github.com/guanghetv/mobileH5V2.git
     5542  git remote
     5543  git pull guanghe devlop
     5544  git pull guanghe develop
     5545  git checkout mind-review
     5546  git pull guanghe develop
     5547  git checkout mind-review
     5548  git merge guanghe/develop develop
     5549  git bransh
     5550  git branch --all
     5551  git checkout mind-review
     5552  git merge guanghe/develop origin/develop
     5553  git fetch
     5554  git show
     5555  git checkout guanghe/feature/mind-review
     5556  git checkout -b mind-review
     5557  git status
     5558  git checkout develop
     5559  git fetch guanghe/develop
     5560  git fetch remotes/guanghe/develop
     5561  git fetch remotes/guanghe
     5562  git pull guanghe/develop
     5563  git remotes
     5564  git remotes --list
     5565  git remote --list
     5566  git remote
     5567  git pull guanghe develop
     5568  git merge guanghe/develop develop
     5569  git status
     5570  git branch
     5571  npm run cli-create
     5572  git status
     5573  git add .
     5574  git status
     5575  git commit -m '新增期中复习运营页面'
     5576  git push origin feature/mind-review
     5577  npm start
     5578* git checkout master
     5579* git remote -v
     5580* git pull guanghe master
    

    运营平台

    测试环境部署

    // step3:部署到测试环境
    ssh master@10.8.8.8  // 输入密码:u..m..
    
    cd Shadow
    git fetch Yfling h5-backstage:h5-backstage  // 当前是test分支
    git fetch origin master:master  // 当前是test分支
    git merge h5-backstage  // 合并到test分支
    
  • 相关阅读:
    《程序员代码面试指南》第八章 数组和矩阵问题 最长的可整合子数组的长度...
    Vue项目中jQuery的引入
    阿里云ECS安装JAVA+MYSQL+NGINX
    WCF寄宿与IIS里时遇到的问题
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/Yfling/p/7047109.html
Copyright © 2011-2022 走看看