GitHub 免费的远程仓库,也是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。
我们可以利用git的本地存储和github的远地存储实现存储你的代码。本文介绍的是怎么创建Repository以及上传本地代码。
可参考: [http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001374829472990293f16b45df14f35b94b3e8a026220c5000
1. www.github.com 注册帐号
2.回到github首页,点击页面右下角“New Repository”,创建存储仓库
3.在我们能用Git工作之前,我们需要做个一次性的配置。为了Git能跟踪到谁做了修改,我们需要设置你的用户名。
git config --global user.name "your_username" git config --global user.email "[email protected]"
发送这些命令,相应地替换掉其中的“your_username”和“[email protected]”(注意引号):
4.创建一个本地代码库:(.git的隐藏文件夹,就是你的本地代码库。)
$ mkdir ~/party_bid //创建一个项目party_bid 如果已经创建好工程文件,忽略这一步,直接执行下一条代码 $ cd ~/party_bid //打开这个项目 $ git init //初始化 $ touch README $ git add README //更新README文件 $ git commit -m 'first commit'//提交代码到本地缓存,并注释信息“first commit” $ git remote add origin https://github.com/tiantian-yuqing/party_bid.git //在第一次你想推送一个本地代码库到远程代码库时,你需要把它添加到你的项目配置里 //注意这里的“origin”只是一个习惯。它是你的远程代码库的别名 $ git push -u origin master //将本地项目更新到github上去
现在查看github上面的hello world 项目,是不是发现已经将本地中的README文件更新上来了。 恭喜!
5.修改文件
6.加载(Stage)文件
我们现在需要加载(stage)所有项目文件。发送:
git add .
最后的“.”符号的意思是“所有文件、文件夹和子文件夹”。假如我们只想要把特定文件添加到源代码控制中去,我们可以指定它们:
git add my_file, my_other_file
7.提交文件
现在,我们想要提交已加载(staged)的文件。阅读“添加一个时间点,在这里你的文件处在一个可还原的状态”。我们提交我们的文件时,总是附带着有意义的注释,描述了它们现在的状态。
git commit -m "initial commit"
8.推送你的本地代码库的主干分支到你的远程代码库:
git push origin master
9.版本回退:
可参考: http://blog.csdn.net/xsckernel/article/details/9021225
如果你想回退到之前的版本,可以使用
git log //显示最近提交的日志 git reset --hard HEAD^ //回退到上一版本(注:会将代码重置,就像没有提交过一样)
在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
10.分支管理:
$ git checkout -b dev //首先我们创建dev分支,然后切换到dev分支: Switched to a new branch 'dev'
$ git branch //用git branch命令查看当前分支 * dev master
然后,把分支推送到远程仓库
$ git push origin dev
接下来我们就可以在dev分支上正常提交:
git add. git commit -m ""
现在,dev分支的工作完成,我们就可以切换回master分支:
$ git checkout master Switched to branch 'master'
现在,我们把dev分支的工作成果合并到master分支上:
$ git merge dev
合并完分支后,甚至可以删除dev分支
$ git branch -d dev Deleted branch dev (was fec145a).
删除后,查看branch,就只剩下master分支了:
$ git branch * master
因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。
11.删除文件:
git rm -rf .idea //删除文件夹,-rf 是删除文件夹下的内容 git rm .idea //删除文件
提交后在github中是不是已经删除了文件?
------------------------------------关于可能出现的错误----------------------------------
1.在执行
$ git remote addorigin [email protected]:defnngj/hello-world.git
错误提示:fatal: remote origin already exists.
解决办法:
$ git remote rm origin
然后在执行:
$ git remote add origin [email protected]:defnngj/hello-world.git就不会报错误了
2.
提示:Warning: Permanently added the RSA host key for IP address '192.30.252.131' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
出现这个问题是因为,没有在github账号添加SSH key(设置好SSH key,以后提交git push可以不需要输入密码)
解决方法如下
在终端输入。
ssh-keygen -t rsa -C"forwhat.cn"//注意。为用户名
如果执行成功。返回Generating public/private rsa key pair.
Enter file in which to save the key (/home/forwhat.cn/.ssh/id_rsa):
在这里就是设置存储地址了.反正我是直接按的回车
然后还会返回
Enter passphrase (empty for no passphrase):
再次直接回车。
Enter same passphrase again:
再次回车。
Your identification has been saved in /home/forwhat.cn/.ssh/id_rsa.
Your public key has been saved in /home/forwhat.cn/.ssh/id_rsa.pub.
The key fingerprint is:
这里有一串数。我把他屏蔽了。
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| o |
| + . S |
| . = . o |
| o + +o.o |
|E o . o.=+. |
|.+ ==+ooo. |
+-----------------+
这样SSH key就生成了。直接cat一下就好了。
cat /home/tiantian/.ssh/id_rsa.pub//在你的主目录下生成了.ssh隐藏文件
ssh-rsa AAAAB3NzaC1yc2EAAAADAQ等一长串的字符
把显示出来的直接添加到github账户设置里边的SSH keys里面(不需要填写title)
回来再
git pull
就开始远程拷贝代码了。每次git push可以不输入密码了