zoukankan      html  css  js  c++  java
  • git命令教程

    git教程笔记

    Git是什么?

    • Git是一个分布式版本控制系统
    • 版本控制方式
      • 集中式版本控制:从版本库中先取得最新的版本,改完之后再上传到版本库中,需要联网
      • 分布式版本控制:每个合作者电脑上都有一个版本库,改动时合作者之间互相推送改动即可
    • .git是Git的版本库,stage是暂存区,master是Git自动创建的第一个分支,HEAD是指向master的一个指针

    上传文件的正常步骤

    git init 把当前目录变成Git可以管理的仓库,初始化git仓库
    git log 查看提交历史
    git add filename //告诉git把文件添加到暂存区
    git commit -m "说明语句" //把暂存区的内容提交到当前分支
    git remote add origin 远程仓库ssh //把本地仓库和远程仓库关联
    git push -u origin master  //把本地库的所有内容推送到远程库上 
    //-u参数把本地master分支和远程master分支关联起来,以后可以省略
    

    查看的命令

    git status //查看当前仓库的状态  
    git diff  //查看修改内容
    git diff HEAD -- 文件名 //查看工作区和版本库里的最新版本之间的区别
    git log   //查看最远到最近的提交记录
    git reset --hard HEAD^ //把当前版本退回到上一个版本
    git reflog //查看命令历史,以确定要退回的版本
    git reset --hard 回退前的版本号(可以不全) //撤销回退
    

    撤回操作

    git checkout -- 文件名 //丢弃文件在工作区的修改
    git reset HEAD 文件名  //丢弃文件在暂存区的修改
    git reset --hard HEAD^  //把文件退回到上一个版本,使用你已经把文件提交到版本库的情况
    //已经推送到远程库,你惨了
    

    删除操作

    rm filename //只是删除了工作区的文件
    git rm filename //删除版本库中的文件
    git commit -m "提示" //提交改变到版本库
    git checkout -- filename //删错了工作区的文件,通过版本库恢复
    

    分支管理

    git branch 新分支 //创建一个新分支
    git checkout 分支 //切换到新分支
    git switch 分支 
    git branch -b 新分支 //创建并切换到新分支
    git switch -c 新分支
    git branch //产看当前所有分支,其中名字前面带*的是当前分支
    git merge 分支名 
        //用于合并指定分支到当前分支,原理上就是把master指针指到最新版本,这样可以同步更新
    git merge --no-ff -m "提示信息" 要合并的分支名 
        //表示禁用默认的fast forward模式,这种模式下删除分支后会丢掉分支信息
    git branch -d 分支名 //删除分支
    master分支应该是非常稳定的,仅仅用来发布新版本,平时不能在上面干活,应该在别的分支上干活,团队成员一般都在dev分支上干活
    

    Bug分支

    场景:当接收到一个修复bug的任务时,当前正在dev上进行的工作还不能提交
    git stash //储存当前工作现场
    在需要修复bug的分支上进行创建bug分支进行bug的修复,然后提交,最后删除修复bug的分支
    回到干活的分支
    git stash list //查看储存的工作现场
    git stash apply 指定stash号 //恢复指定的工作现场
    git stash drop 指定stash号 //删除指定工作现场
    场景:同样的bug,在dev分支上也要修复,只需要把修复bug的提交所作的修改复制到dev分支就可以了
    git cherry-pick 提交号 //复制修复bug所作的提交
    

    团队合作

    git clone 项目网址
    git checkout -b dev origin/dev //创建远程oringin的dev分支到本地
    git push origin dev //向origin/dev分支推送提交
    //如果合并有冲突
    git branch --set-upstream-to=origin/dev dev //指定dev分支与远程origin/dev分支的链接
    git pull
  • 相关阅读:
    奇虎董事长周鸿祎:谁说没钱不能创业
    分析.NET基础库源码,学习Stream类及相关类
    Why need two IF in singleton pattern in the multiple threads scenario
    It's bad design that leveraging singleton design pattern in db connection
    Asp.net mvc 3 JSONResult return array
    System.Web.HttpContext.Current vs. ControllerContext.HttpContext (almost the same)
    Nhibernate HQL example paging and avoid sql injection
    Asp.net mvc 3 JSON complext object mapping
    Nhibernate configuration in app.config with log4net enabled 0 of 4
    Setup and run a simple nhibernate example
  • 原文地址:https://www.cnblogs.com/hannahzhao/p/11788191.html
Copyright © 2011-2022 走看看