目录:
1、Git远程分布式管理
2、Git在Github
3、Git分支管理
进击的小仙
参考资料:Git教程 - 廖雪峰的官方网站
1. Git远程分布式管理
相较于SVN的集中式版本管理机制,Git的优势在于它支持分布式版本管理。支持远程仓库。
我想开发一个Android项目,首先在家里电脑上新建了一个最原始的项目版本库,在里面做项目的开发。然后我在公司的时候有点富余的时间,想修改或者添加完善这个项目,但是我的电脑没带,U盘拷来拷去又不方便。于是我把版本库交给服务器,让服务器每天每时每刻都运行着以便我在任何时候任何地点都可以从服务器中GET最新版本到本地,然后修改,提交。为了保证服务器里的版本是最新的,在修改完成后应该要提交给服务器。
那么问题来了,服务器怎么弄?
注意:Github免费提供仓库托管,虽然只有你自己可以操作版本库,但是每个人都可以看到,私人仓库托管要付费。码云仓库托管免费哦!
Paste_Image.png2. Git在Github
2.1. 注册Github账号Github
2.2. 创建SSH Key
SSH Key是保证传输安全的协议,通过输入指令可以生成RSA公钥和私钥,私钥自己保管,公钥可以公开放到Github上。
- 在本地工作区目录下打开bash
- 输入命令:
ssh-keygen -t rsa -C "example@email.com"
,输入自己的邮箱内容,如果忘记自己设置的邮箱,输入git show
可以查看。回车后可以一步步设置ssh存放的路径和密码,如果不想设置就一路回车。
- 命令完成之后在用户主目录下生成了.ssh文件夹,里面有两个文件:
id_rsa
和id_rsa.pub
.前者是私钥,后缀为.pub的就是public公钥。
那么问题来了,如何快速查看公钥内容?
首先打开bash,然后输入:
# 进入.ssh目录
cd ~/.ssh
# 查看内部文件
ls
# 查看公钥文件内容
cat id_rsa.pub
2.3. 在github上添加本电脑的公钥
- 进入Github官网,登录。
- 点击头像,选择Settings
- 进入SSH and GPG keys
- 点击按钮New SSH key添加,将公钥内容添加到key一栏中。
如下图:
2.4. 同步本地仓库和github仓库
-
在GitHub上新建仓库
点击头像旁边的加号,选择new repository
,添加新的版本库,名为git_test
-
在本地新建一个版本库
新建一个文件夹git_test
在里面打开bash,初始化:git init
-
关联远程库
在bash输入:git remote add origin git@github.com:elspet/git_test.git
,
elspet
是Github账户昵称,git_test
是版本库名称。 -
克隆Github内容到本地
在bash中输入:git clone git@github.com:elspet/git_test.git
-
推送内容到Github
在bash中输入:
git push origin master
如果你在github新建仓库时生成了README文件或者LICENCE文件会出现下列问题:
Paste_Image.png没关系,添加pull语句:
git pull origin master
git push origin master
成功:
Paste_Image.png
3. Git分支管理
每个人在各自的分支上做代码修改,每天工作完成后将代码提交到分支上,当自己修改的代码不会影响到其他人的开发就可以把分支内容合并到master分支上。
Paste_Image.png
- 查看所有分支:
git branch
- 新建分支并且换到该分支下:
git checkout -b bran1
- 切换到master分支:
git checkout master
- 将新建的分支推到服务器上
git push origin bran1
这个时候到GitHub上可以看到该项目目录下多了一个bran1分支:
Paste_Image.png- 删除本地版本库分支:
git branch -d bran1
- 查看远程分支:
git remote show origin
- 删除不存在于远程库的本地分支:
git remote prune origin
- 删除远程分支:
git push origin --delete bran1
git结构.png
最后全流程统一操作一遍:
# 查看所有分支
git branch
# 新增分支bran1
git checkout -b bran1
# 此时是在bran1分支下的工作区,修改README文件
vim README
# 将修改添加到暂存区
git add README
# 将修改提交到bran1分支
git commit -m "modified README at bran1 branch"
# 将分支内容推送更新到服务器
git push origin bran1
# 切换到master分支上
git checkout master
# 将分支内容合并到master分支
git merge bran1
# 将master内容推送更新到服务器
git push origin master
# 删除本地库分支bran1
git branch -d bran1
# 删除远程分支bran1
git push origin --delete bran1
网友评论