zoukankan      html  css  js  c++  java
  • git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看

    1.进入项目文件夹

    初始化一个Git仓库,使用git init命令。

    添加文件到Git仓库,分两步:

    • 第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件;// 

    • 第二步,使用命令git commit,完成。

     2.修改文件

    •  git status命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改。
    • git diff顾名思义就是查看difference,显示的格式正是Unix通用的diff格式,可以从上面的命令输出看到

    • 提交修改,先使用git add, 在使用git commit

     3.版本回滚

    • 在Git中,我们用git log命令查看:版本控制系统肯定有某个命令可以告诉我们历史记录,
    • git log --reptty=oneline
    • git reset --hard HEAD^ (HEAD^^:上上版本,HEAD~100:上100版本)回滚到某版本
    • 当你回退了又想返回回退前的版本就要知道版本号
    • 如果忘了版本号 git reflog : 查看这个库的修改日志

     4.工作区与暂存区的概念

     5.管理修改

    • 修改文件后,先使用git add,把修改添加到暂存区
    • 再使用commit,把暂存区的修改推送到分支上(commit只能推送已经add到暂存区的修改,没add过,是没有东西commit的)

     6.撤销修改

    • git checkout -- readme.txt 可以丢弃工作区的修改
    • git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令
    • git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区

     7.删除文件

    • git rm test.txt 是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit
    • git checkout -- test.txt 删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本

     8.github仓库:

     9.克隆git

    • $ git clone git@github.com:michaelliao/gitskills.git
    •  $ git clone https://github.com/miaowwwww/learngit.git

     10.分支管理

    • 首先,我们创建dev分支,然后切换到dev分支:
      $ git checkout -b dev
    • git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
      $ git branch dev
      $ git checkout dev
    •  用git branch命令查看当前分支:
      $ git branch

     

    • 合并分支:$git merge dev (切换回master分支,合并当前分支与dev分支)
    • 合并完成后,就可以放心地删除dev分支了:$ git branch

     

     11.解决冲突

    • 当两个分支合并的时候可能会存在冲突,解决冲突后,重新commit
    • git log --graph命令可以看到分支合并图。
    •  

     12.分支管理策略

    • 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
    • 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
    • 准备合并dev分支,请注意--no-ff参数,表示禁用Fast forwar
    • $ git merge --no-ff -m "merge with no-ff" dev
    • 需要把-m 添加上去,因为会创建一个新的分支,需要添加说明

     

    13.bug分支:来自廖雪峰的官方网站

    • 每个bug都应该使用一个分支来处理:例如:issue-101分支,处理后再删除分支
    • 情况1:当手上dev分支上的工作不能commit上去,而又必须处理issue-101时,(不可直接创建issue-101,在返回dev,因为没有commit到暂存区,转回来的时候,dev未commit的部分不存在了)
      • 使用 $git stash:  可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
      • 修复issue-101,后重新回到dev分支,并把储藏的代码拿出来
      • git stash list 命令查看储藏列表
      • 一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除
      • 另一种方式是用git stash pop,恢复的同时把stash内容也删了

    14.Feature分支(新功能)

    • $ git checkout -b feature-vulcan
    • 在commit之前又说要取消新功能,git branch -D feature-vulcan (没commit,无法使用git branch -d feature-vulcan 删除,使用-D强制删除)

    15.使用远程github多人协作:大家都会往masterdev分支上推送各自的修改。(廖雪峰的官方网站

    • 当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin
    • git remote  || git remote -v : 查看版本库的信息
    • 推送分支:git push origin master<name>
    • 捉取分支:

     16.标签管理:给某一个commit的版本一个别名,不用通过长串的版本号

    • 创建标签(当前版本进度):$ git tag v1.0
    • 对历史里某次版本进行标签:$ git tag v0.9 6224937
    • 可以用git show <tagname>查看标签信息:

    • 创建带有说明的标签,用-a指定标签名,-m指定说明文字:$ git tag -a v0.1 -m "version 0.1 released" 3628164
    • 删除标签:$ git tag -d v0.1
    • 推送标签到远程: git push origin <tagname> || $ git push origin --tags
    • >可以删除一个远程标签:git push origin :refs/tags/<tagname>

     17.忽略特殊文件.gitignore

  • 相关阅读:
    国产html编辑器
    豆瓣90mhz电台还行
    购物搜索
    linode vps 优化集锦
    这个系统,我看行,
    代理网站
    合理设置域名TTL值给网站加速
    dns切换到dnspod
    elixir usage
    JSSH介绍
  • 原文地址:https://www.cnblogs.com/miaowwwww/p/6156184.html
Copyright © 2011-2022 走看看