`
tiantian-yuqing
  • 浏览: 22895 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论
阅读更多
       Git版本控制系统是一个分布式的系统, 是用来保存工程源代码历史状态的命令行工具;
       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 "your_email@domain.com"

发送这些命令,相应地替换掉其中的“your_username”和“your_email@domain.com”(注意引号):
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 git@github.com:defnngj/hello-world.git


错误提示:fatal: remote origin already exists.

解决办法:

$ git remote rm origin


然后在执行:
$ git remote add origin git@github.com: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可以不输入密码了
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics