• git 安装与使用场景


    1. 安装

    yum install git  #自动安装依赖 centos
    sudo apt-get install git   #ubutu
    http://msysgit.github.io/  #window下载安装即可

    2.配置

    安装完成之后,设置配置用户:

    #必须
    git config --global user.name "Your Name"  #用户名
    git config --global user.email "email@example.com" #邮箱
    
    #可选配置信息有
    branch.master.remote=origin #一般默认远程库origin
    branch.master.merge=refs/heads/master
    remote.origin.url=https://changyuan@github.com/changyuan/MyProj.git #远程的项目url
    
    #别名配置
    git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Crese t %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" #日志
    通过 git config --list 可以查看多有的配置信息,git config --global "object" "values" 配置所有的全局配置
    

      

    远程同步时候需要(git clone 到自己的库中是不需要的):

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

    window:Git Bash打开,输入 ssh-keygen ,按enter,一直按enter 直到出现下面,直至在.ssh中生成id_rsa.pub文件,复制其中的秘钥到你需要的平台(gitthub),如下图:

    3.创建版本库

      1)克隆已存在的项目

    git clone git@github.com:changyuan/MyProj.git
    

     2) 在本地初始化项目,新建文件夹,在里面 

    git init #生成.git目录,里面包含git的设置信息,比如:.gitingore是忽略版本控制的列表

    4.创建的使用场景

    #常用分支
    主分支:master  特征模块:feature  开发分支:dev 维护分支:hofix  发布分支:release
    
    #初始化
    git init
    
    #添加文件到缓冲区
    git add readme.txt
    git add readme.txt readme1.txt
    git add .
    
    #提交
    git commit -m "add readme.txt"
    
    
    #删除文件
    git rm test.txt
    git commit -m "remove test.txt"
    
    
    
    #比较差异
    git diff readme.txt
    
    #查看工作区和版本库里面最新版本差异
    git diff HEAD -- readme.txt 
    
    
    
    #丢弃工作区的修改,或者删除了(没有commit之前的,之后需要用git reset --hard version)
    git checkout -- readme.txt
    
    
    #查看状态
    git status
    git status -s
    
    
    #创建分支
    git branch dev
    #删除分支
    git branch -d dev
    
    #合并分支
    git checkout master
    git merge dev
    
    #通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
    #添加 --no-ff :禁用Fast forward方式
    git merge --no-ff -m "merge with no-ff" dev 
    
    
    #删除远程分支
    git push origin :dev
    
    #切换分支
    git checkout dev
    #创建并且切换到dev分支
    git checkout -b dev
    
    
    #当两个分支都修改了一个文件地方(master,dev),合并分支的时候 git merge dev 。解决冲突
    vim readme.txt  
    git add readme.txt 
    git commit -m "conflict fixed"
    
    
    #写错修改,不同的场景操作区分:
    #场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
    #场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
    #场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,git reset --hard HEAD^,不过前提是没有推送到远程库。
    
    
    #回到上个版本
    git reset --hred HEAD^ 
    #回到上上个版本
    git reset --hred HEAD^^
    #回到前100个版本
    git reset --hred HEAD~100
    
    #通过git log看看版本号 还原到此版本
    git reset --hred  version
    
    
    #查看日志
    git log
    #简介看法
    git log --pretty=oneline
    git log --pretty=oneline --abbrev-commit
    
    #查看未来
    git reflog
    #查看合并分支图
    git log --graph
    git log --graph --pretty=oneline --abbrev-commit
    
    
    #git 可以起别名通过配置之后,如下
    git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Crese t %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
    #之后可以用git lg 查看日志
    
    
    
    
    #隐藏工作区,去修复bug场景
    git stash
    #查看隐藏的工作区
    git stash list
    #恢复 git stash apply;git stash drop 或者 git stash pop 
    
    
    
    
    
    
    #远程同步
    
    #生成你自己的邮箱秘钥,用来ssh同步哦
    ssh-keygen -t rsa -C "youremail@example.com"
    在/root/.ssh/中有两个秘钥  id_rsa和id_rsa.pub ,之后把 id_rsa.pub 填写到 Gittub 或其他的秘钥平台 SSH keys中,
    
    
    
    #你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,下面用于关联远程库。
    #如果你是 git clone git@github.com:changyuan/MyProj.git  YourProject 就不用了。
    git remote add origin git@github.com:changyuan/MyProj.git
    
    
    #查看远程库的信息
    git remote 
    git remote -v
    
    #第一次推送
    git push -u origin master
    git push origin master
    
    
    #从远程获取
    git fetch
    
    
    #推送远程分支
    git push -u origin master
    git push origin dev
    
    
    #当你的小伙伴从远程库clone时,默认情况下,你的小伙伴只能看到本地的master分支。不信可以用git branch命令看看:
    #现在,你的小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支:
    git pull
    git pull origin dev
    
    git checkout -b dev origin/dev
    #本地dev分支和远程dev分支做链接
    git branch --set-upstream dev /origin/dev 
    
    
    #多人协作的工作模式通常是这样:
    #首先,可以试图用git push origin branch-name推送自己的修改;
    #如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
    #如果合并有冲突,则解决冲突,并在本地提交;
    #没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
    #如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
    
    
    
    #打版本控制
    git tag v1.0
    #通过-a对某个版本添加说明
    git tag -a v0.1 -m "version 0.1 released" 3628164
    #通过-s用私钥签名一个标签
    git tag -s v0.2 -m "signed version 0.2 released" fec145a
    #查看所有
    git tag
    #显示某个版本详细信息
    git show v1.0
    #删除本地tag
    git tag -d v1.0
    
    #推送标记
    git push origin v1.0
    #推送本地所有的tag
    git push origin --tags
    #删除远程tag
    git push origin :v1.0
    git push origin :refs/tags/v1.0
    
    
    其他工具:
    要方便管理公钥,用Gitosis;要像SVN那样变态地控制权限,用Gitolite。
    

      

  • 相关阅读:
    浏览器内核
    为什么一般请求可以下载文件,Ajax 请求就不能下载
    转 深入理解javascript原型和闭包(10)——this
    node读取文本文件时,去掉BOM
    AMD & CMD
    gulp requirejs Error: ENOENT: no such file or directory, open '/js/require_config.js', 一直报找不到require_config.js,坑死了
    [BZOJ3224]普通平衡树
    [NOIP2014D2]
    [NOIP2014D1]
    [NOIP2013D2]
  • 原文地址:https://www.cnblogs.com/icyy/p/5165739.html
Copyright © 2020-2023  润新知