一、本地仓库
1.创建用户名和邮箱
$ git config --global user.name "Your Name" #用户名
$ git config --global user.email "email@example.com" #邮箱
2.创建仓库
-
1
$ mkdir learngit #创建一个空目录 $ cd learngit #进入文件夹 $ pwd #显示当前目录
-
2
$ git init #把这个目录变成Git可以管理的仓库
3. 提交文件
$ git add filename #向仓库增加文件
$ git status #查看当前状态
$ git commit -m "这里写做的改变"
$ git diff filename #查看修改内容
4.回滚
$ git log # 查看历史提交记录
$ git log --pretty=oneline #可以使历史记录更简洁呈现
在Git中,用HEAD
表示当前版本,也就是最新的提交。上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。
$ git reset --hard HEAD^ #回退至上一个版本
$ git reset --hard ***** #回退到指定版本,*****为版本号前几位
$ git reflog #记录每一次命令
切换到指定版本,需要获取commit ID,用$ git reflog
命令获取需要的版本号,以方便回滚。
git checkout -- filename
可以丢弃工作区的修改,还未add。
命令git reset HEAD filename
可以把暂存区的修改撤销掉(unstage),已经add。
那么已经提交怎么改呢?回退版本!!!
5.删除文件
$ rm filename #删除文件
$ git rm filename
$ git commit -m #从版本库删除文件
执行命令$ rm filename
命令,若从版本库删除用命令$ git rm filename
命令,然后提交。
命令$ git checkout -- filename
用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
note:命令git rm
用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
二、远程仓库
1.添加远程库
-
注册GitHub账号
-
git命令
$ ssh-keygen -t rsa -C "邮箱地址"
产生ssh密匙
-
GitHub添加sshkey
-
GitHub创建仓库
2.关联仓库
本地的仓库下运行命令:
$ git remote add origin git@github.com:github名称/仓库名.git
第一次推送到GitHub:
$ git push -u origin master
每次本地提交后,只要有必要,就可以使用命令
$ git push origin master
推送最新修改。
note:
-
远程库的名字就是
origin
,这是Git默认的叫法,也可以改成别的。 -
由于远程库是空的,我们第一次推送
master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。 -
本次第一次推送遇到错误:
解决办法:运行了命令:
$ git pull --rebase origin master
git pull --rebase origin master
意为先取消commit
记录,并且把它们临时 保存为补丁(patch
)(这些补丁放到".git/rebase
"目录中),之后同步远程库到本地,最后合并补丁到本地库之中。
3.克隆远程库
GitHub建立库,克隆至本地:
$ git clone git@github.com:github地址/仓库名.git
note:GitHub给出的地址不止一个,还可以用https://github.com/michaelliao/gitskills.git
这样的地址。实际上,Git支持多种协议,默认的git://
使用ssh,但也可以使用https
等其他协议。
使用https
除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh
协议而只能用https
。