$ git push -u origin master## 创建版本库
-
先搞一个空文件夹
pwd 显示当前目录 -
git init将该目录变成Git可以管理的仓库
$ git init Initialized empty Git repository in E:/<文件夹名>/.git/ //创建了一个在E:/<文件夹名>/.git/目录下的空的仓库
-
添加文件到Git仓库
①使用命令 git add …,可多次使用
②使用命令 git commit -m ,添加修改信息
修改版本
-
git status 查看工作区状态
如果修改了文件:提示文件的修改还没有add(添加到暂存区),也没有commit(提交更改)$ git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: readme.txt no changes added to commit (use "git add" and/or "git commit -a")
如果add了文件:提示将要被提交(commit)的修改包括readme.txt
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: readme.txt
如果提交(commit)了文件:提示没有需要提交的修改
$ git status
On branch master
nothing to commit, working tree clean
- git diff 查看修改内容
版本回退
-
HEAD指向的版本就是当前的版本(相当于一个链表的头,后续版本的储存就是一个头插法)
HEAD^,表示上一个版本
HEAD^^,表示上上个版本
HEAD~100,表示往上100个版本 -
git reset --hard commit_id
commit_id 就是版本号,也可以用HEAD^,等等 -
git log查看提交历史,以便确定要回退到哪个版本
-
git relog查看命令历史
如果重置版本后后悔了,可以用该命令来查看版本修改历史
工作区和暂存区
- 工作区,就是之前使用git init 的那个目录——learngit文件夹,存放着git所管理的文件。
- 版本库,就是刚刚创好的工作区自己生成的.git 文件,版本库存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区
- 暂存区,用git add添加文件,实际上就是把文件修改添加到暂存区;用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支
管理修改
每次修改,如果不用git add到暂存区,那这个修改就不会加入到commit中。
撤销修改
- git restore <文件名>,还未add到暂存区时,撤销修改
- git restore --staged <文件名>,add到暂存区后,取消暂存
注:
使用git status可以查看这两个命名的提示
删除修改
原理和撤销修改一样
要先删除文件:rm <文件名>,此时有两种情况:
- 的确要把test.txt删掉:
①git add/rm <文件名>,将修改提交到暂存区
②git commit -m “…”,将暂存区的修改提交 - 删错文件了:git restore <文件名>,撤销删除,恢复文件
建立远程仓库
将本机的SSH key 设置给github,确保你推送的提交确实是你推送的
- 登陆github
- 在git上输入:
$ ssh-keygen -t rsa -C “youremail@example.com”
一路Enter(都设为默认值),在用户主目录下,会生成.ssh目录,里面是id_rsa(内涵SSH的私钥)和id_rsa.pub(内涵SSH的公钥)两个文件。 - 登陆GitHub,打开“Account settings”,“SSH Keys”页面,然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容
添加远程仓库
- 登陆Github
- 右上角New repository ->Repository name设置远程仓库名字
- 点击“Create repository”按钮提交 (就是如此easy)
将本地仓库与远程仓库关联
- 在git上输入:
$ git remote add origin git@github.com:你的Git账户名/learngit.git - $ git push -u origin master
会弹出警告,输入yes(不能enter!!!)
该命令会推送master分支的所有内容 - 此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改