整理Git的命令使用

        Git是一个开源的分布式版本号控制系统,用以有效、快速的处理从非常小到非常大的项目版本号管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源代码的版本号控制软件。能初始化一个新的代码仓库,做一些适当配置。開始或停止跟踪某些文件。暂存或提交某些更新;从远程仓库拉数据下来或者推数据上去。
        用于 Linux内核开发的版本号控制工具。与经常使用的版本号控制工具 CVS, Subversion 等不同,它採用了分布式版本号库的方式,不必server端软件支持(注:这得分是用什么样的服务端。使用http协议或者git协议等不太一样。而且在push和pull的时候和server端还是有交互的。

),使源码的公布和交流极其方便。

Git 的速度非常快,这对于诸如 Linux kernel 这种大项目来说自然非常重要。 Git 最为出色的是它的合并跟踪能力。


git status
  看状态
git add    
   增加一个文件到git index [file name]  是将当前更改或者新增的文件增加到Git的索引中,增加到Git的索引中就表示记入了版本号历史中,这也是提交之前所须要运行的一步,比如'git add app/model/user.rb'就会增加app/model/user.rb文件到Git的索引中
git log     
    看你commit的日志
git commit
      提交当前工作空间的改动内容。类似于SVN的commit命令。比如'git commit -m "story #3, add user model"'。提交的时候必须用-m来输入一条提交信息 
git push
      将本地commit的代码更新到远程版本号库中,比如'git push origin'就会将本地的代码更新到名为orgin的远程版本号库中
git push origin HEAD:refs/for/master     
        把当前分支推送到名为origin的远端的master分支上
git reset     
        还原您更改合并前的
git rm
        从当前的工作空间中和索引中删除文件,比如'git rm app/model/user.rb'
git clone
        这是较为简单的一种初始化方式,当你已经有一个远程的Git版本号库,仅仅须要在本地克隆一份。比如'git clone git://github.com/someone/some_project.git some_project'命令就是将'git://github.com/someone/some_project.git'这个URL地址的远程版本号库全然克隆到本地some_project文件夹以下
git init
       初始化的版本号库(暂且称为working repository)将会生成两类文件:第一类是版本号库文件夹.git文件夹,它里面存放的是版本号的历史记录信息和实际项目文件的拷贝;你能够把这类版本号库叫做"工作文件夹"(working tree);工作文件夹是一个包括有版本号历史文件夹".git"和项目源文件的文件夹;你能够在工作文件夹中改动你的项目源文件并使用命令"git add"和"git commit"进行版本号管理;

git remote
        查看与加入远程仓库
git checkout
        Git的checkout有两个作用,其一是在不同的branch之间进行切换,比如'git checkout new_branch'就会切换到new_branch的分支上去。还有一个功能是还原代码的作用,比如'git checkout app/model/user.rb'就会将user.rb文件从上一个已提交的版本号中更新回来,未提交的内容所有会回滚。
git pull
        从远程获取最新版本号并merge(合并)到本地。它与git fetch的差别是:git fetch仅仅是获取最新版本号,没有合并到本地,可能须要自己进行比較然后再合并的做法。



注意:
1、使用命令"git clone"从一个现有的版本号库克隆出来的新版本号库也是一个工作文件夹(working tree),包括.git文件夹和实际项目源文件;
2、假设使用命令"git init"初始化版本号库,则远程版本号库文件夹下也包括工作文件夹(working tree),当本地版本号库向远程版本号库push时,假设远程版本号库当前成处于要被push的分支上,那么push后的结果不会反映在远程版本号库的工作文件夹(working tree)上,也即:在远程版本号库的文件夹下相应的文件还是之前的旧内容,必须使用命令"git reset --hard"之后才干看到push后的新内容,或者是登陆到远程版本号库文件夹下,使用命令"git config --bool core.bare true"把版本号库的核心属性改动成bare的类型。

Git与Repo的比較 
       Git操作一般相应一个仓库,而Repo操作一般相应一个项目。即一个项目会由若干仓库组成。 
比如,在操作整个Recket项目时使用Repo。而操作当中的某个仓库时使用Git。

在包括隐藏文件夹.git的文件夹下运行git操作。

原文地址:https://www.cnblogs.com/lcchuguo/p/5287129.html