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

    1.git全局设置

    git config --global user.name "Your Name"
    git config --global user.email "email@example.com"

    2.创建版本库

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

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

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

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

    3.版本控制

    • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令 git reset --hard commit_id 

    • 穿梭前,用 git log 可以查看提交历史,以便确定要回退到哪个版本。

    • 要重返未来,用 git reflog 查看命令历史,以便确定要回到未来的哪个版本。

    • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令 git checkout -- file 

      场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令 git reset HEAD file ,就回到了场景1,第二步按场景1操作。

      场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本控制第一步,不过前提是没有推送到远程库。

    4.远程仓库

      生成ssh密钥

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

      在远程仓库如github-帐户设置-ssh公钥管理-添加自己的公钥(默认生成在C:UsersAdministrator.ssh,id_rsa是私钥,id_rsa.pub是公钥)

      在本地仓库下:

    git remote add origin git@github.com:cloudebug/gitest.git

        origin:远程库的名字,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程

        git@github.com:远程仓库地址,Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

        cloudebug/gitest.git:用户名/仓库名.git

       下一步,就可以把本地库的所有内容推送到远程库上:

    git push -u origin master   

        把本地库的内容推送到远程,用 git push 命令,实际上是把当前分支master推送到远程。

    由于远程库是空的,我们第一次推送master分支时,加上了 -u 参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。(第一次推送,如果远程不空,如有README.md,将会报错“Non-fast-forward”)

     5.克隆远程仓库

    git clone git@github.com:cloudebug/cloudebug.git

     6.分支

      查看分支: git branch 

      创建分支: git branch <name> 

      切换分支: git checkout <name> 

      创建+切换分支: git checkout -b <name> 

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

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

      当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交。用 git log --graph --pretty=oneline --abbrev-commit 命令可以看到分支合并图。

        --graph:查看分支合并图

        --pretty=oneline:--pretty 是使用其他格式显示,可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。 限制输出长度。

        --abbrev-commit:截断提交号,只显示前几位

    出错:

    1.Non-fast-forward

    出现原因:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。于是你有2个选择方式:

      1,强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容

    git push -f

      2,先把git的东西fetch到你本地然后merge后再push

    git fetch
    git merge

      这2句命令等价于

    git pull
  • 相关阅读:
    python day01
    Mac上安装pexpect
    raid
    SSL证书制作
    linux grep命令详解
    第一轮迭代小组成员分数分配
    M1事后分析报告(Postmortem Report)
    软件发布说明
    测试报告
    week 9 scenario testing
  • 原文地址:https://www.cnblogs.com/tswcypy/p/4481060.html
Copyright © 2011-2022 走看看