zoukankan      html  css  js  c++  java
  • git学习记录

    git 学习笔记 (gitlab搭建自己服务器上的远程仓库,稍后研究)

    1、pwd : 命令用于显示当前目录

    2、git init : 通过git init命令把这个目录变成Git可以管理的仓库 (初始化一个Git仓库,使用git init命令。)

    3、git status : 命令可以让我们时刻掌握仓库当前的状态

    4、git diff (文件名) : 可以查看更改的细节

      要随时掌握工作区的状态,使用git status命令。
      如果git status告诉你有文件被修改过,用git diff可以查看修改内容。

    5、git log 告诉我们历史记录 (git log --pretty=oneline 简化输出log)

    6、git reset --hard HEAD^ 回退到上一个版本
      在Git中,用HEAD表示当前版本 ,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

      git reset --hard commitID 可以去到每一个commit版本,


    7、git reflog 用来记录你的每一次命令,(可以查询commitID

      总结:    HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
          穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
          要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

    8、工作区,暂存区
      第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区
      第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支

    9、git checkout -- readme.txt 意思就是,把readme.txt文件在工作区的修改全部撤销
      ①一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
      ②一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

      总之,就是让这个文件回到最近一次git commit或git add时的状态。
      (git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令

      总结:    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
          场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,可以清除缓存区的修改,保留到工作区的修改,再丢弃工作区的修改,就回到了场景1,第二步按场景1操作。
          场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

    10、rm test.txt / git rm test.txt 删除文件
      (rm虽然删除了,但是未提交到缓存区双层,不能commit,可以用git rm test.txt 这个命令是:删除并提交,可以 直接commit)
      命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

    11、远程仓库(对应8的工作区暂存区)
      关联远程仓库:git remote add origin git@gitee.com:zjzweb/heima.git

      总结: 要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
      关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
      此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

    12、git clone git@gitee.com:zjzweb/heima.git 命令 克隆远程仓库

    <------------------git分支操作-------------------------->

    13、git checkout -b dev
      git checkout命令加上-b参数表示"创建并切换"
      等同于    git branch dev
          git checkout dev

      ***** git switch -c dev(最新版本创建并切换分支)

    14、git branch -d dev 删除分支


    15、git branch 查看分支
      会列出所有分支,当前分支前面会标一个*号。

      注意:    切换分支使用git checkout <branch>,而前面讲过的
          撤销修改则是git checkout -- <file>,同一个命令,有两种作用,确实有点令人迷惑。
          实际上,切换分支这个动作,用switch更科学。因此,最新版本的Git提供了新的git switch命令来切换分支。

    小结:
      Git鼓励大量使用分支:

      查看分支:git branch

      创建分支:git branch <name>

      切换分支:git checkout <name>或者git switch <name>

      创建+切换分支:git checkout -b <name>或者git switch -c <name>

      合并某分支到当前分支:git merge <name>

      删除分支:git branch -d <name>

      git log --graph 可以查看分支合并图

    16、git merge --no-ff -m "merge with no-ff" dev
    合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

    在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“复制”到当前分支,避免重复劳动。

    17、bug分支
    发现bug-->存储正在工作的内容stash-->创建bug分支-->解决bug,合并到主分支 -->恢复储存的stash-->继续开心的工作

    18、git stash 可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
    git stash list 查看储存位置
    工作现场还在,Git把stash内容存在某个地方了
    git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除
    git stash pop,恢复的同时把stash内容也删了

    你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:
    git stash apply stash@{0}

    19、向线上git push 推送失败
    你的小伙伴已经向origin/dev分支推送了他的提交,而碰巧你也对同样的文件作了修改,并试图推送

    先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送
    git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置dev和origin/dev的链接
    git branch --set-upstream-to=origin/dev dev 再pull,
    这回git pull成功,但是合并有冲突,需要手动解决,解决的方法和分支管理中的解决冲突完全一样。解决后,提交,再push

    必须手动解决冲突后再提交。git status也可以告诉我们冲突的文件
    Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改如下后保存


    20、多人协作流程
    1)首先,可以试图用git push origin <branch-name>推送自己的修改;

    2)如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

    3)如果合并有冲突,则解决冲突,并在本地提交;

    4)没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

    5)如果git pull提示no tracking information,则说明“本地分支和远程分支的链接关系没有创建”,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。

    这就是多人协作的工作模式,一旦熟悉了,就非常简单。

    小结:
    查看远程库信息,使用git remote -v;

    本地新建的分支如果不推送到远程,对其他人就是不可见的;

    从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

    在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

    建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;

    从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

    21、git rebase
    rebase操作的特点:把分叉的提交历史“整理”成一条直线,看上去更直观。缺点是本地的分叉提交已经被修改过了。
    小结:
    rebase操作可以把本地未push的分叉提交历史整理成直线;

    rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

    22、标签管理
    Git有commit,为什么还要引入tag?commit号是6a5819e...”不好记
    创建标签
    git tag <name>

    查看标签
    git tag
    查看标签信息
    git show <tagname>查看标签信息
    创建带有说明的标签:用-a指定标签名,-m指定说明文字
    git tag -a v0.1 -m "version 0.1 released" 1094adb

    git tag v0.9 f52c633 :找到commit id 给他打个标签

    标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。
    小结:

    命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

    命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;

    命令git tag可以查看所有标签。

    操作标签
    如果标签打错了,也可以删除
    git tag -d v0.1

    小结

    命令git push origin <tagname>可以推送一个本地标签;

    命令git push origin --tags可以推送全部未推送过的本地标签;

    命令git tag -d <tagname>可以删除一个本地标签;

    命令git push origin :refs/tags/<tagname>可以删除一个远程标签。


    屏幕宽度 / 设计稿宽度 *100 来设置根元素的 font-size 10px = 0.10rem

    375/750 0.5*100 = 50px;


    1rem = 50px
    0.1rem = 5px


    设计稿 / 手机
    750 / 375
    10px 0.1rem = 5px

     //工作切换合并

     //工作内容添加、提交、推送

    git  add .
    git  commit -m '提交的备注信息'
    git  push -u origin dev


    想将dev分支合并到master分支,操作如下

     
    1、首先切换到master分支上
    git checkout master

    2、如果是多人开发的话 需要把远程master上的代码pull下来
    git pull origin master
    //如果是自己一个开发就没有必要了,为了保险期间还是pull

    3、然后我们把dev分支的代码合并到master上

    git merge dev

    4、然后查看状态及执行提交命令
    git status
    
    On branch master
    Your branch is ahead of 'origin/master' by 12 commits.
      (use "git push" to publish your local commits)
    nothing to commit, working tree clean
    
    //上面的意思就是你有12个commit,需要push到远程master上 
    > 最后执行下面提交命令
    git push origin master

    5、其他命令

    更新远程分支列表
    git remote update origin --prune
    
    查看所有分支
    git branch -a
    
    删除远程分支Chapater6
    git push origin --delete Chapater6
    
    删除本地分支 Chapater6
    git branch -d  Chapater6
     
     
     




    《------------------------未完待续-------------------------------》

  • 相关阅读:
    WPF基础之内容控件
    WPF基础之路由事件
    WPF基础分享之布局
    JMeter操作手册
    Jmeter安装和配置
    UI自动化--Web Driver小结
    对于自动化测试框架的总结
    UI自动化--selenium webdriver
    postman断言
    接口测试工具---postman的基本使用
  • 原文地址:https://www.cnblogs.com/zjz666/p/12091556.html
Copyright © 2011-2022 走看看