What's git & git·hub?
![](https://img-my.csdn.net/uploads/201210/15/1350306917_3091.png)
开发环境:Linux,git工具
1. 注册个帐号先。
2.生成个SSH再(官网很详细,step-by-step)
3. 创建个Repository(用来放项目的仓库)再。
先在github上创建并写好相关名字,描述之后再在本地创建与之发生“联系”的文件夹。
$cd ~
$mkdir github_JFF-RTOS //本地目录名与repository的名字不一定相同,相关即可
$cd ~/github_JFF-RTOS //进入github_JFF-RTOS目录
复制所要托管的代码到此处:
如果你选中了第3步的4,则你需要先执行
$git pull origin master
From github.com:mintist/JFF-RTOS * branch master -> FETCH_HEAD Merge made by the 'recursive' strategy. .gitignore | 12 ++++++++++++ README.md | 4 ++++ 2 files changed, 16 insertions(+) create mode 100644 .gitignore create mode 100644 README.md
注意:那就是github自动帮你生成的两个文件,先拉(pull)下来先~~~
否则~~~也没事,往后走先~~~
$git init //初始化
Initialized empty Git repository in /home/mintist/github_JFF-RTOS/.git/
$git add . //把所有文件加入到索引(不想把所有文件加入,可以用gitignore或add 具体文件,见下文) $git commit -m "好吧,这还算不上一个RTOS~~~" //提交到本地仓库,然后会填写更新日志
4 files changed, 259 insertions(+) create mode 100644 Readme create mode 100644 app.c create mode 100644 core.c create mode 100644 core.h
$git remote add origin git@github.com:mintist/JFF-RTOS.git //增加到remote
$git push origin master //推(push)到github上
if(you git pull origin master as I say ,you will get )
Counting objects: 9, done.Delta compression using up to 4 threads. Compressing objects: 100% (8/8), done. Writing objects: 100% (8/8), 2.96 KiB, done. Total 8 (delta 1), reused 0 (delta 0) To git@github.com:mintist/JFF-RTOS.git c13a550..109de37 master -> master
else
To git@github.com:mintist/JFF-RTOS.git如果遇到错误,再拉一下就好了~~! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'git@github.com:mintist/JFF-RTOS.git' To prevent you from losing history, non-fast-forward updates were rejected Merge the remote changes (e.g. 'git pull') before pushing again. See the 'Note about fast-forwards' section of 'git push --help' for details.
还有平常的一些更新啥的请看下文,亲测可用~~~
总结一下ubuntu下github常用的命令,设置部分跳过,假设repository的名字叫hello-world:
1.创建一个新的repository:
先在github上创建并写好相关名字,描述。
$cd ~/hello-world //到hello-world目录,本地目录名与repository的名字不一定相同
$git init //初始化
$git add . //把所有文件加入到索引(不想把所有文件加入,可以用gitignore或add 具体文件,见下文)
$git commit //提交到本地仓库,然后会填写更新日志( -m “更新日志”也可,如$git commit -m “my first vesion of ...”)
$git remote add origin git@github.com:WadeLeng/hello-world.git //增加到remote
$git push origin master //push到github上
2.更新项目(新加了文件):
$cd ~/hello-world
$git add . //这样可以自动判断新加了哪些文件,或者手动加入文件名字
$git commit //提交到本地仓库,不加参数会提示,注意:^=Ctrl,按照提示来就好了~~~
$git push origin master //不是新创建的,不用再add 到remote上了
3.更新项目(没新加文件,只有删除或者修改文件):
$cd ~/hello-world
$git commit -a //记录删除或修改了哪些文件
$git push origin master //提交到github
4.忽略一些文件,比如*.o等:
$cd ~/hello-world
$vim .gitignore //把文件类型加入到.gitignore中,保存
然后就可以git add . 能自动过滤这种文件
5.clone代码到本地:
$git clone git@github.com:WadeLeng/hello-world.git
假如本地已经存在了代码,而仓库里有更新,把更改的合并到本地的项目:
$git fetch origin //获取远程更新
$git merge origin/master //把更新的内容合并到本地分支
6.撤销
$git reset
7.删除
$git rm * // 不是用rm
//------------------------------常见错误-----------------------------------
1.$ git remote add origin git@github.com:WadeLeng/hello-world.git
错误提示:fatal: remote origin already exists.
解决办法:$ git remote rm origin
然后在执行:$ git remote add origin git@github.com:WadeLeng/hello-world.git 就不会报错误了
2. $ git push origin master
错误提示:error:failed to push som refs to
解决办法:$ git pull origin master //先把远程服务器github上面的文件拉先来,再push 上去。
//------------------------------------------------------------------------------
一个中文git手册:http://progit.org/book/zh/