1.配置Git
首先在本地创建ssh key;
[code]$ ssh-keygen -t rsa -C "your_email@youremail.com"[/code]
后面的your_email@youremail.com改为你在github上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。
回到github上,进入 Account Settings(账户配置),左边选择SSH Keys,Add SSH Key,title随便填,粘贴在你电脑上生成的key。
2.为了验证是否成功,在git bash下输入:
[code]$ ssh -T git@github.com[/code]
如果是第一次的会提示是否continue,输入yes就会看到:You've successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。
3.执行 [code]git init[/code] 以创建新的 git 本地仓库
接下来我们要做的就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们。
[code]$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"[/code]
进入要上传的仓库,右键git bash,添加远程地址:
[code]$ git remote add origin git@github.com:yourName/yourRepo.git[/code]
3.远端服务器上的仓库克隆到本地
[code]git clone username@host:/path/to/repository[/code]
4.你的本地仓库由 git 维护的三棵"树"组成。第一个是你的 工作目录,它持有实际文件;第二个是 暂存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,它指向你最后一次提交的结果。
你可以提出更改(把它们添加到暂存区),使用如下命令:
[code]git add <filename>
git add *[/code]
这是 git 基本工作流程的第一步;使用如下命令以实际提交改动:
[code]git commit -m "代码提交信息"[/code]
现在,你的改动已经提交到了 HEAD,但是还没到你的远端仓库。
5.推送改动
你的改动现在已经在本地仓库的 HEAD 中了。执行如下命令以将这些改动提交到远端仓库:
[code]git push origin master[/code]
可以把 master 换成你想要推送的任何分支。
6.在github.com上 建立了一个小项目,可是在每次push的时候,都要输入用户名和密码,很是麻烦
原因是使用了https方式 push
在命令里边 输入 Git remote -v
可以看到形如一下的返回结果
origin https://github.com/yuquan0821/demo.git (fetch)
origin https://github.com/yuquan0821/demo.git (push)
下面把它换成ssh方式的。
[code]
git remote rm origin
git remote add origin git@github.com:yuquan0821/demo.git
git push origin
[/code]
7.切换分支
创建一个叫做"t1"的分支,并切换过去:
[code]git checkout -b t1[/code]
切换回主分支:
[code]git checkout master[/code]
再把新建的分支删掉:
[code]git branch -d t1[/code]
除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的:
[code]git push origin <branch>[/code]
8.更新与合并
要更新你的本地仓库至最新改动,执行:
[code]git pull[/code]
以在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。
要合并其他分支到你的当前分支(例如 master),执行:
[code]git merge <branch>[/code]
在这两种情况下,git 都会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。 这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:
[code]git add <filename>[/code]
在合并改动之前,你可以使用如下命令预览差异:
[code]git diff <source_branch> <target_branch>[/code]