zoukankan      html  css  js  c++  java
  • 一、Git的一些命令操作----创建版本库、增加文件到Git库、时光机穿梭、远程仓库

    具体详细教程请链接:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

    我这里只是记录一些常用命令

    1、创建版本库

    $ cd /c/wamp/www  #进入c:wamp/www目录下面
    $ git init        #将该文件夹变为Git可管理的版本库

        ps:执行完上面的git init后会在www文件夹下出现一个.git文件夹

    2、将www目录下的文件及文件夹添加到Git仓库中

    $ git add .
    $ git add test.txt #只添加文件test.txt

    $ git commit -m "add the file"

         ps:上面的add只是将文件增加到Git的暂存区,要想真正添加到Git仓库中用commit命令

    3、时光机穿梭

      3.1工作区状态查看

    $ git status    #查看工作区的状态
    $ git diff      #查看具体的修改内容

      3.2版本回退

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

             查看提交历史:

    $ git log
    $ git log --pretty=oneline     # 一行显示,前半段是commit id,后本段是描述

             ps:这个commit id在后面的版本回退非常重要

             返回上一版本:

    $ git reset --hard HEAD^

             ps:^表示返回上一版本,^^表示返回上上一版本.....

             按commit id回退版本:

    $ git reset --hard 3628164

             ps:这里的3628164为commid id的前几位,因为我们只需要让这个id唯一标识,一般为前6、7位     

             查看命令历史:

    $ git reflog

      3.3查看工作区和版本库中最新的版本的区别(readme.txt文件的区别)

    $ git diff HEAD -- readme.txt

      3.4撤销修改

             丢弃工作区的修改:

    $ git checkout -- readme.txt

             ps:这里有两种情况:

                 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

                 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

                 总之,就是让这个文件回到最近一次git commitgit add时的状态。

            撤销掉暂存区的修改:

    $ git reset HEAD readme.txt
    Unstaged changes after reset:
    M       readme.txt

            ps:将暂存区的内容重新放回工作区。git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

      3.5删除文件

             一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit

    $ git rm test.txt
    rm 'test.txt'
    $ git commit -m "remove test.txt"
    [master d17efd8] remove test.txt
     1 file changed, 1 deletion(-)
     delete mode 100644 test.txt

              另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

    $ git checkout -- test.txt

    4、远程仓库

        前提,已经将工作区生成的ssh keys放到远程仓库中。远程有一个空库learngit

       4.1添加远程库

    $ git remote add origin git@github.com:michaelliao/learngit.git

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

       4.2把本地库的所有内容推送到远程库上

    $ git push -u origin master
    Counting objects: 19, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (19/19), done.
    Writing objects: 100% (19/19), 13.73 KiB, done.
    Total 23 (delta 6), reused 0 (delta 0)
    To git@github.com:michaelliao/learngit.git
     * [new branch]      master -> master
    Branch master set up to track remote branch master from origin.

            ps:把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

            ps:第一次推送会有警告,一般直接yes就可以了,你也可以与远程库信息核对后在yes

            以后推送:

    $ git push origin master

       4.3从远程库克隆

    $ git clone git@github.com:michaelliao/gitskills.git
    Cloning into 'gitskills'...
    remote: Counting objects: 3, done.
    remote: Total 3 (delta 0), reused 0 (delta 0)
    Receiving objects: 100% (3/3), done.
  • 相关阅读:
    A1126 Eulerian Path (25分)
    A1125 Chain the Ropes (25分)
    A1124 Raffle for Weibo Followers (20分)
    A1123 Is It a Complete AVL Tree (30分)
    A1122 Hamiltonian Cycle (25分)
    A1121 Damn Single (25分)
    A1120 Friend Numbers (20分)
    A1119 Pre- and Post-order Traversals (30分)
    总的调试开关
    sourceInsight
  • 原文地址:https://www.cnblogs.com/yxpblog/p/4701639.html
Copyright © 2011-2022 走看看