具体详细教程请链接: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 

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
file changed, deletion(-)
delete mode 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: , done.
Delta compression using up to threads.
Compressing objects: % (/), done.
Writing objects: % (/), 13.73 KiB, done.
Total (delta ), reused (delta )
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: , done.
remote: Total (delta ), reused (delta )
Receiving objects: % (/), done.

一、Git的一些命令操作----创建版本库、增加文件到Git库、时光机穿梭、远程仓库的更多相关文章

  1. git删除已经提交的包含敏感信息的文件(还没提交到远程仓库)

    写好的代码已经提交了(但还没push到github),发现某个文件里包含密码.如果push的话,密码可就被公开了.如果在代码里改掉密码,再commit一次,也不行,历史提交记录还是会上传到github ...

  2. Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突

    Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突 这篇是接着上篇分布式版本库--Windows下G ...

  3. idea中Git配置,Git的非命令操作

    1.更换Git账户 在idea中File-->Settings-->Appearance-->System Settings-->Passwords,选择不保存密码(Do no ...

  4. git学习——git命令之创建版本库和版本退回

    原文来至 一.创建版本库 版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追 ...

  5. Git命令之创建版本

    安装 安装好Git后,将会在桌面生成 这样一个图标 运行后将会是类似控制台程序的黑色窗口,其中mingw64(参考百度百科).这样的话就可以在输入命令 例如 :git 见到下图有详细的用法表示成功否则 ...

  6. Git学习(二)——创建版本库、查看与回退版本

    一.创建版本库 版本库,又名仓库(Repository),可以简单理解为一个目录,这个目录里的所有文件可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者将来某 ...

  7. git 教程(2)--创建版本库

    什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或 ...

  8. Git学习笔记(一)创建版本库并添加文件

    最近从廖雪峰老师的个人网站上学习git,做点笔记. ★★★★★ 先注册自己的username和email,否则会报如下错误: 注册:git config --global user.name &quo ...

  9. Git 常见的命令操作

    克隆                git clone git地址 查看分支         git branch 查看git库状态  git status 切换分支         git  che ...

随机推荐

  1. JS-逻辑运算符的与,或,非

    JS-逻辑运算符的与,或,非 1.非 所谓非,就是取反,非真即假,非假即真. 非运算符不仅仅只能用于布尔值,其他数据类型也是可以的,如下: 1.如果操作数是一个对象,返回false 2.如果操作数是一 ...

  2. Redis-String常用命令

    Redis-String常用命令 set key value- 设置Key-value键值对 get key 获取指定key对应的值 append key value 在指定key对应值的后面追加va ...

  3. element-ui 表格可编辑添加删除

    <template> <div id="Cold_all"> <div class="Cold_Left"> <el- ...

  4. 通过Callable接口实现多线程

    一.通过Callable接口实现多线程 c.实现Callable重写call方法 实现Callable和实现Runnable类似,但是功能更强大,具体表现在 a.可以在任务结束后提供一个返回值,Run ...

  5. 【0】Zookeeper Q&A

    1.Observer角色如何配置? Zookeeper集群中的中的Leader和Follower角色是由服务器启动时期的Leader选举产生的,Observer不参与选举,此角色的节点需要在配置文件z ...

  6. sprintf的使用

    头文件:stdio.h 函数原型:int sprintf(char *buffer, const char *format, [argument]…) 参数: (1)buffer:是char类型的指针 ...

  7. IPC之util.h源码解读

    /* SPDX-License-Identifier: GPL-2.0 */ /* * linux/ipc/util.h * Copyright (C) 1999 Christoph Rohland ...

  8. C/C++常见问题汇总

    问题1.数组和指针的区别 数组名不可以作为左值 char * p1 = "Hello World" ; //分配字符串常量,然后赋给 p1 ,一个指针型变量,是左值 ] = &qu ...

  9. JavaScript柯里化(currying)

    参考: https://www.jianshu.com/p/33392cb4b055 https://ruby-china.org/topics/38385 https://stackoverflow ...

  10. NoSQL数据库技术实战-第1章 NoSQL与大数据简介 NoSQL数据库的类型

    键值存储数据库临时性:如Memcached.临时性的键值数据库把数据存储在内存中,在两种情况下会造成上数据的丢失,一是断电,而是数据内容超出内存大小.这种处理的好处是非常快.永久型:如Tokyo Ty ...