1 账号注册
登录 www.github.com,用邮箱注册一个账号
2 SSH key生成
在账户 setting中 选择左边的SSH Keys
在本地使用命令 ssh-keygen -t rsa -C "your_email@your_email.com
cat /root/.ssh/id_rsa.pub 把其中的内容贴到github中的Add SSH Key中的key中,title随意,最好写是哪台电脑产生的key
这样github与这台电脑就有了认证关系
3测试连接成功否
[root@ BBS]# ssh -T git@github.com
Hi m8k7j! You've successfully authenticated, but GitHub does not provide shell access.
4 配置
git config --global user.name "your name"
git config --global user.email "your email"
5 github上创建版本
在用户名旁边有个+,new repository新建一个仓库
repository name: blog
description: a blog for myself
add a license: GPLv2
6 把本地文件上传到github
到本地版本文件夹中输入 git init
[root@ BBS]# git init
Initialized empty Git repository in /data/python/django/BBS/.git/ 提示本地仓库为空的
[root@ BBS]# ls -a
. .. BBS blog blog.db .git manage.py up_load
在仓库中加文件
[root@ BBS]# git add . 把本目录中的所有文件添加
[root@ BBS]# git add blog/ 添加一个文件夹
[root@ BBS]# git add ReadMe.txt 添加一个文件
提交到缓存
[root@ B[root@huan BBS]# git commit -m 'a alex blog' 提交到本地仓库,说明这次提交的注释
[master (root-commit) 594b33f] a alex blog
146 files changed, 22127 insertions(+)
create mode 100644 BBS/__init__.py
create mode 100644 BBS/__init__.pycBS]# git add ReadMe.txt
关联本地与github上的哪个仓库对应
[root@ BBS]# git remote add origin git@github.com:m8k7j/blog.git 这个blog就是之前在github上建的repository
推送本地仓库代码到github中相对应的仓库中
[root@ BBS]# git push -u origin master
To git@github.com:m8k7j/blog.git
! [rejected] master -> master (non-fast-forward) 本地文件与仓库中的文件不一致,要先把本地文件更新到最新版本
更新最新版本
[root@ BBS]# git pull git@github.com:m8k7j/blog
From github.com:m8k7j/blog
* branch HEAD -> FETCH_HEAD
Merge github.com:m8k7j/blog
# Please enter a commit message to explain why this merge is nec
essary,
# especially if it merges an updated upstream into a topic branc
h.
#
# Lines starting with '#' will be ignored, and an empty message
aborts
# the commit.
add files for new branch 这句是新增的,修改head文件
~
~
~
~
~
~
~
~
~
~
~
~
".git/MERGE_MSG" 8L, 281C written
Merge made by the 'recursive' strategy.
LICENSE | 340 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 340 insertions(+)
create mode 100644 LICENSE
再次进行推送则ok
[root@ BBS]# git push
Counting objects: 205, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (157/157), done.
Writing objects: 100% (204/204), 1.40 MiB | 45 KiB/s, done.
Total 204 (delta 12), reused 0 (delta 0)
To git@github.com:m8k7j/blog.git
4974b98..b92b5e8 master -> master
克隆仓库中的文件到本地
[root@ git]# git clone git@github.com:m8k7j/blog.git
Cloning into 'blog'...
remote: Counting objects: 207, done.
remote: Compressing objects: 100% (147/147), done.
remote: Total 207 (delta 13), reused 204 (delta 12), pack-reused 0
Receiving objects: 100% (207/207), 1.41 MiB | 95 KiB/s, done.
Resolving deltas: 100% (13/13), done.
github 分支管理
[root@ blog]# git branch blog_add 创建新分支 blog_add
[root@ blog]# git push origin blog_add 推送分支到github上
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:m8k7j/blog.git
* [new branch] blog_add -> blog_add
[root@ blog]# git branch 分支查看
blog_add
* master
总结:
ssh -T git@github.com 测试本地与服务器的连接
git init 本地git初始化
git add . 增加本地文件到仓库
git commit -m 'a alex blog' 把本地文件提交到缓存
git remote add origin git@github.com:m8k7j/blog.git 本地仓库关联github上的仓库
git pull git@github.com:m8k7j/blog 更新本地仓库至最新
git push -u origin master 推送本地仓库到github
git clone git@github.com:m8k7j/blog.git 克隆github上的仓库
git branch blog_add 增加分支
git push origin blog_add 推送新分支
git merge dev 合并dev分支到master
git checkout -b dev 创建并切换到dev
git stash 把当前的工作隐藏起来,等以后恢复现场后工作
git stash apply 恢复被隐藏的文件
git stash drop 删除文件
git stash pop 恢复文件的同时并删除文件
git remote -v 查看远程库的详细信息
git push origin dev 推送分支
参考:
http://www.bootcss.com/p/git-guide/