1下载git
https://git-scm.com/
下载后全部默认傻瓜式按装即可
创建一个版本库(非常简单)
一、
1、打开Git Bash,设置用户名,用户邮箱
- git config --global user.name "Your Name"
- git config --global user.email "email@example.com"
2. 选择一个合适的地方,创建一个空目录:
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
3.初始化一个git仓库,通过git init
命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in D:/SoftWare/Git/.git/
到此 Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository)。
下面开始在learngit目录下编写一个 ceshi.php 文件,内容如下:(这里用php文件测试)
4,用命令git add
告诉Git,把文件添加到仓库:
$ git add ceshi.php
执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。
5,用命令git commit -m "这里写本次提交说明"
告诉Git,把文件提交到仓库:
二、注册GitHub账号
三、创建Key
第1步:创建SSH Key,把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
$ ssh-keygen -t rsa -C "youremail@example.com"
第三步:填写Title(随便写,对当前key的一个说明,好让你知道key对应的是哪一台电脑) 和 key(复制C/Users/.ssh/id_rsa.pub 文件里的内容,注意ctrl+a复制所有的,否则报错)
至此key添加完成
四、新建远程库 并把本地文件推到远程库中。
现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作。
目前,在GitHub上的这个仓库还是空的,我创建远程仓库是Repository name填的是: learngit,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
1.现在,我们根据GitHub的提示,在本地的learngit
仓库下运行命令:(注意把*的位置替换成你自己的Github账户名)
$ git remote add origin git@github.com:*/learngit.git
添加后,远程库的名字就是origin
,这是Git默认的叫法,也可以改成别的,但是origin
这个名字一看就知道是远程库。
下一步,就可以把本地库的所有内容推送到远程库上:
2.把本地库的内容推送到远程,用git push
命令,实际上是把当前分支master
推送到远程。
$ git push -u origin master
SSH警告:当你第一次使用Git的clone
或者push
命令连接GitHub时,会得到一个警告:
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?
输入
yes
回车即可,这个警告只会出现一次,后面的操作就不会有任何警告了。
注意:如果报以下错误的话:
先执行:$ git pull --rebase origin master
再执行:$ git push -u origin master
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
3.推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:
从现在起,只要本地作了提交,就可以通过命令:
$ git push origin master
五、总结。
1.流程:
查看远程库信息,使用
git remote -v
;本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用
git push origin branch-name
,如果推送失败,先用git pull
抓取远程的新提交;在本地创建和远程分支对应的分支,使用
git checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致;建立本地分支和远程分支的关联,使用
git branch --set-upstream branch-name origin/branch-name
;从远程抓取分支,使用
git pull
,如果有冲突,要先处理冲突。
2.多人协作的工作模式通常是这样:
首先,可以试图用
git push origin <branch-name>
推送自己的修改;如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull
试图合并;如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用
git push origin <branch-name>
推送就能成功!
如果git pull
提示no tracking information
,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
。
这就是多人协作的工作模式,一旦熟悉了,就非常简单。
六、附加
1.撤销修改 有两种情况:
①更改后没有add到暂存区,用
$ git checkout -- lianxi.php
②更改后已经add到暂存区,用:
$ git reset HEAD lianxi.php