1、安装Git
Git-2.9.3-64-bit.exe
2、打开Git Bash,设置用户名,Email
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
3、创建目录,设置为仓库
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
4、添加文件至版本库
将readme.txt文件放入仓库目录下,添加到版本库:
$ git add readme.txt
将文件提交到仓库:
$ git commit -m "wrote a readme file"
注意:可以多次add,一次commit
5、查看文件状态
修改readme.txt文件内容,如:
Git is a distributed version control system.
Git is free software.
执行以下命令:
$ git status
6、对比修改前后不同
$ git diff readme.txt
7、提交修改
$ git add readme.txt
$ git commit -m "add distributed"
8、查看历史记录
$ git log
$ git log --pretty=oneline
9、版本回退
$ git reset --hard HEAD^ 回退到上个版本
$ git reset --hard 3628164 回退到指定版本,版本号不用写全
$ git reflog 查看每次操作命令,可以找到之前的版本号
$ git reset HEAD readme.txt 把暂存区的修改撤销掉(unstage)
注意:git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
10、查看文件内容
$ cat readme.txt
11、撤销修改
$ git checkout -- readme.txt
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
12、删除文件
本地删除了文件
从版本库中删除文件:
$ git rm test.txt
$ git commit -m "remove test.txt"
从版本库恢复被删除的文件:
$ git checkout -- test.txt
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
13、远程仓库
第一步:
在Git Bash中执行命令:
$ ssh-keygen -t rsa -C 542113457@qq.com
一直回车,在C:Userswangxiangyu.ssh目录下会生成两个文件:id_rsa和id_rsa.pub,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
第二步:
登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
第三步:
创建远程仓库:New repository,Repository name随意,其他默认,Create repository
第四步:
根据GitHub的提示,在本地的learngit仓库下运行命令:
git remote add origin git@github.com:CodeGodWangxy/wangxiangyu1234.git
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的。
第五步:
推送本地库内容到远程库,执行命令,输入yes,回车
git push -u origin master
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样。
$ git push origin master 把本地master分支的最新修改推送至GitHub
14、从远程库克隆
勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕后,可以看到README.md文件:
准本好远程库后,执行克隆命令:
git clone git@github.com:CodeGodWangxy/gitskillstoo.git