zoukankan      html  css  js  c++  java
  • Git使用总结

     ssh-keygen -t rsa -b 4096 -C "xxx@exmaple.com"

    生成ssh密钥对,然后将~/.ssh/id_rsa/id_rsa.pub复制到github的ssh key管理的地方即可。

    git add

    1、将文件添加到暂存区,文件会由untracked变为tracked状态 。

    2、如果之前某个文件已经git add了,但是没有进行commit操作,那么修改文件后,执行git add会将上次git add的文件覆盖。

     git commit -m 描述

    提交暂存区的文件到版本库中,并增加描述

     git commit -a -m 描述

    1、只要git add一次之后,只要之后每次文件一改动,不用git add ,直接git commit -a 就会将这些新改动的文件全部commit,自带add。

    2、从来没有经过git add的文件,不会被添加到版本库

    git rm filename

    同时删除版本库(注意不是暂存区)和工作目录的文件,但是不会删除历史记录,可以回到删除文件之前。

    对没有提交到版本库中的文件(没有commit过),使用此命令是无效的。

    如果不使用此命令,那么就要使用 如下命令完成同样的功能

    rm file  && git add file && git commit file

    然后才将文件从两个地方删除

    git rm --cached file

    1、将一个已暂存的文件转化为未暂存的,tracked=>untracked

    2、将一个已经提交到版本库的文件从版本库中删除,但是将其保留在工作目录

    等价于 git reset HEAD file && git checkout -- file

    git checkout head -- file

    如果执行了git rm命令,将版本库和工作目录的文件删除了,可以使用该命令将文件恢复

    恢复之后该文件的状态是已添加进版本库

    git mv fileName newName

    同时移动两个地方的文件(版本库和工作目录)

    等同于 mv fileName newName && git rm fileName && git add newName

    移动之后,要使用commit提交修改

    git log -n -p commit_id或者引用

     输出commit_id或者引用 所指的 那次提交的 n条log

     git log master~A..master~B

    输出master分支,倒数第A次,到倒数第B次提交之间的提交日志,".."表示区间范围

     git branch

    查看当前版本库中的所有分支

     git branch newBranchName [start_commit]

    省略start_commit时,默认以当前的分支的最新commit为基准,创建一个新分支。

     git checkout branchName

    从当前分支切换到其他已创建的分支(branchName所指的分支)

    git checkout -b newBranch

    以当前的分支的最新commit为基准,创建一个新分支,并且切换到新的分支。

    如果当前分支有文件修改后(一个被commit过的文件,现在又做了一些修改,但是没有commit提交这点修改),执行这条命令之后,所做的修改会直接成为新分支的中modified文件,在新分支中add之后commit,然后就成功新分支的一部分,并且在原分支中所做的修改会被抛弃。

    git checkout -m otherBranch

    如果想要将在本分支中所做的改动不提交到本分支,而是提交到另外一个分支,并且切换到另一个分支。

    使用这个命令之后,在原分支中的所做的改变都会变成另一条分支的内容,所以原分支中所做的改动将会被丢弃。

    使用git checkout时,要注意

    1、如果当前分支的工作目录中某个文件从来没有commit过,哪怕是add了,那么切换到其他分支的时候,该文件仍旧保持原状态。如果是add过,那么现在commit,那么这个文件就会成为新分支的一部分,而原分支就不会出现该文件了。

    2、如果当前分支的工作目录中的某个文件被commit过,但是现在对其做了一点修改,导致其状态变为modified,如果不先commit,一旦发起checkout到其他分支,就会abort,如果加-f选项强制切换分支,那么该文件在原分支中的所做的改变就会被丢弃。所以在切换到其他分支前,尽量进行commit,将在本分支中做的改动提交到分支中。

    3、如果有其他情况,可以参考上一条命令,git checkout -m otherBranch

     git show dev:index.php

    显示分支名称为dev下的index

     git branch -d dev

    删除分支名称为dev的分支。

    注意

    1、删除的分支不能使当前分支,只能是除当前分支以外的分支。

    2、删除的分支如果没有合入当前分支,也就是说要删除的分支最新的提交之后,没有合入到本分支,那么执行这条命令会失败的

    3、如果要强制删除一条没有何如本分支的分支,可以将-d选项改为-D即可。

    git diff

    比较文件或者目录的差异,包括以下两点

    1、一个文件commit了之后,做了一些修改,没有add,也没有commit,那么执行此命令就会显示 当前工作目录中的文件和版本库中的文件差异。

    2、一个文件commit了之后,做了一些修改,执行了add,但没有commit,然后又对该文件做了一些修改,此时执行命令,显示的就是当前工作目录中的文件和暂存区中该文件的差异。

    git diff commit_id

    显示当前工作目录 和 指定commit_id的那次提交之间的差异

    注意:是当前工作目录和给定提交之间的差异,并不是暂存区或者版本库  和  给定提交之间的差异。

    git diff --cached commit_id

    显示暂存区中某个文件 指定提交的差异,commit_id可以省略,省略的话,默认为HEAD,也就是当前分支的最新提交。

    git diff commit_id_1  commit_id_2

    显示两次提交之间的差异,会忽略当前工作目录中和暂存区中文件的差异。

     git diff HEAD

    显示当前工作目录 和 暂存区中的文件差异。

     

    git merge dev

    将分支名称为dev

     

    git clone git_url [repos_Name]

    克隆一个远程的版本库,git库的地址是git_url,后面的repos_name是版本库下载完之后的文件夹名称。

    repos_name可以省略,省略之后,默认是以版本库的名称命名文件夹。

    git clone --bare git_url [repos_name.git]

    创建权威版本库,权威版本库的名称是repos_name.git,可省略。

    权威版本库和普通版本库的区别:

    1、权威版本库没有工作目录,只包含普通版本库中的.git文件夹里面的内容。

    2、普通版本库中有工作目录,不仅包含.git目录,还包含工作目录中的文件。

    git config user.name 'test'

    设置当前版本库的配置信息,该配置信息会保存在.git/config文件中,可以通过  cat .git/config  来查看。

     git config --list 或者 -l

    显示当前版本库的配置信息(注意包含全局配置和当前版本库配置)。

    git config --global user.name 'test'

    git config --global user.email 'test@demo.com'

    设置git全局配置

    git config --global --list

    查看git的全局配置项。

    这些配置项是使用 git config --global 来设置的配置项。

    git pull xxx dev 

    从xxx版本库中的dev分支的内容拉取下来,用来更新当前的本地分支

    git push xxx dev

    将版本库中的当前分支的内容提交到xxx版本库的dev分支。

    git remote add xxx url

    git pull 和 git push后面的xxx可以使用下面这条命令添加

    其实xxx就是url的别名而已

    以上内容整理自《Git 版本控制管理》

  • 相关阅读:
    BZOJ1085 SCOI2005 骑士精神【IDA* 启发式迭代加深】
    BZOJ1690 Usaco2007 Dec 奶牛的旅行 【01分数规划】
    SPOJ104 Highways 【矩阵树定理】
    BZOJ1597土地购买 【斜率优化DP】
    【模板】NTT
    【模板】FFT
    BZOJ3196 Tyvj1730 二逼平衡树 【树套树】 【线段树套treap】
    POJ3696 The Windy's 【网络流】
    POJ2728 Desert King 【最优比率生成树】
    BZOJ5298 CQOI2018 交错序列 【DP+矩阵快速幂优化】*
  • 原文地址:https://www.cnblogs.com/-beyond/p/8495285.html
Copyright © 2011-2022 走看看