Git分布式版本控制系统,非常流弊的一个版本管理系统,此博文介绍下git常用的命令,适用于不会Git版本控制的菜鸟,对于维护Git服务器的大牛来说,跪求指教,其实我也是菜鸟。

     Git是被压迫出来的产物,因为BitMover公司收回了版本控制系统BitKeeper对linux社区免费使用的权限,而linux的开发迫切需要一个好的分布式版本控制系统,我们心高气傲的linux之父linus不愿意向BitMover低头付费,一生气就花了不到一个月的时间用自己的C写出了现在最流行的分布式版本控制系统git,在这里非常感谢BitMover公司的推进,有了现在非常好用的Git,不的不说,linus还是很流弊的。


1. 在Git中设置你的名字和email这些是提交commit的时候的签名

     git config --global user.name "yatian"

     git config --global user.email "[email protected]"


2. 创建版本库。

    # 首先找一个合适的地方创建一个空文件夹

     mkdir learngit

    # 通过git命令把这个目录变成Git可以管理的仓库

     git init

        注意:在执行完git init这个命令后,会提示创建了一个空的仓库,并且有一个隐藏的文件'.git',这个文件是跟踪管理版本库的,没事千万不要手动修改这个文件,容易将版本库搞坏掉。

    # 编写一个文件readme.txt一定要放到 learngit 的目录下,否则在这个仓库中是找不到的

     git add readme.txt

    # 告诉git把文件提交到仓库中

     git commit -m "wrote a readme file"

      -m 在这里是解释本次操作的, 方便以后查找历史记录   

    # 查看当前git有没有修改过的文件及新上传的文件

     git status

    # 查看文件是那些为有过修改及详细查看修改的文件

     git diff readme.txt 

    # 将已经存在的文件,修改后提交方式

     git commit -a -m "lanyulei"

    # 查询git所有修改记录的命令

     git log [--pretty=oneline]

      单独执行git log输入的内容可能过多,加上后面的参数可以简要的输入内容。"[]"代表可有可无

    # 回退版本,首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

      回退到上一个版本中

       git reset --hard HEAD^

      想要回去的话, 也是可以的,但是前提是,还能记得之前的commit id,Git总是有后悔要可以吃的,可以使用git reflog来查看你的历史操作 

       git reflog

       git reset --hard 123456

    # 工作区版本和版本库中的最新版本比较

      git diff HEAD -- readme.txt   

    # 丢弃工作区的修改,就是想刚刚修改的东西,还原

      git checkout -- readme.txt

    # 当你想将暂存区的修改回退的时候,使用一下命令

      git reset HEAD file

    # 当你删除工作去文件的时候,git status就会提示你工作区和版本区的版本不一致,一是确实要从版本库中删除该文件

      git rm file

      git commit -m "delete file"

       二是,你误删除了工作区的文件,想要恢复,那么撤销工作区域的修改就可以了

      git checkout -- file


3. 远程仓库

    # 自行创建github网站的账号,创建一个共有的版本库

    # 要关联一个远程代码库

      git remote add origin [email protected]:yatian/test.git

      origin   远程库的名字,是Git中的默认叫法,可以是别的

    # 将代码推送至远程库

      git push [--force] -u origin master 

      注意:第二次提交的时候,直接提交就可以

         git push origin master

    # 克隆代码

      git clone [email protected]:yatian/gitskills.git


4. 分支管理

    # 创建一个新的分支,并且切换到这个新的分支

      git checkout -b dev

      git checkout命令加上-b参数表示创建并切换,相当于以下两条命令: 

          git branch dev

          git checkout dev

    # 查看当前所在分支

      git branch

    # 合并某分支到当前分支

      git merge dev

    # 删除分支

      git branch -d dev