您的位置:首页 > 编程语言

使用Github部署一套开发环境完整教程

2018-01-14 10:53 447 查看

生成一个SSH密钥以供本地访问github

访问https://github.com/settings/keys(当然你得先注册一个github账号)

点击“New SSH Key”,你也可以参考教程(https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/

到Windows CMD 下输入以下命令

//产生一个关联你github账号的密钥文件
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Generating public/private rsa key pair.

//(输入你密钥的位置,默认即可,打回车)
Enter a file in which to save the key
(/c/Users/you/.ssh/id_rsa):[Press enter]

// 输入密码,可以直接打两次回车,不设置密码(为空)
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

// 确保ssh代理是开着的
eval $(ssh-agent -s)
Agent pid 59566

//把之前产生的ssh密码加入代理
ssh-add ~/.ssh/id_rsa

//用命令copy出密钥串
clip < ~/.ssh/id_rsa.pub

//复制到前面说的New SSH key 页面上 https://github.com/settings/keys[/code] 

创建一个github项目库

访问https://github.com/,点击“Start a project”按钮,或者“New repository”

点击“Clone or download” 选择SSH,复制地址比

如“git@github.com:yourName/testProject.git”

在本地建立项目目录关联github(请先安装git)

cd c:/test
// Clone默认是master主分支
git clone git@github.com:yourName/testProject.git

// 创建新的个人开发分支
git checkout -b my-dev

// 日常在此分支下开发, 并提交到github
git add
git commit
git push origin my-dev

//在自己的开发分支测试好了,合并代码到主开发测试分支
git checkout master(切换回主开发测试分支)
git pull origin master(先同步服务器端代码)
git merge  my-dev(将my-dev代码合并到master)
git push origin master(提交合并后的代码到服务器端)

// 合并完成并同步后记得切回个人分支,切勿在master上自己开发
git checkout my-dev

// 如果需要将自己的分支与Master分支保持同步,如果不创建新的分支,则需要在原来的分支上进行rebase
git checkout master
git pull origin master
git checkout my-dev
git rebase master

//本地关联remote 分支
git checkout sharp-dev
git branch -u origin/sharp-dev

//clone的时候,可以指定深度,如下,为1即表示只克隆最近一次commit.
git clone git://xxoo --depth 1


如何删除git历史中的大文件

有时候多人协作开发,有的人会不小心再git目录下饭了一个较大的文件,如xx.zip只要被push过一次,git就会一直保留着这个文件的历史记录,即使你把它删除了,重新push也无济于事。当新人进来开发,需要git clone时,会下载所有的记录,包括那个文件(被保存在C:\git.git\objects\pack)

- 我们可以clone最近的一次,比如git clone git://xxoo –depth 1

- 但这不是最佳的办法,如何删除这个大文件。请看:

.git文件主要用来记录每次提交的变动,当我们的项目越来越大的时候,我们发现 .git文件越来越大。

很大的可能是因为提交了大文件,如果你提交了大文件,那么即使你在之后的版本中将其删除,但是,实际上,记录中的大文件仍然存在。

为什么呢?仔细想一想,虽然你在后面的版本中删除了大文件,但是Git是有版本倒退功能的吧,那么如果大文件不记录下来,git拿什么来给你回退呢?但是,.git文件越来越大导致的问题是: 每次拉项目都要耗费大量的时间,并且每个人都要花费那么多的时间。。

git给出了解决方案,使用git branch-filter来遍历git history tree, 可以永久删除history中的大文件,达到让.git文件瘦身的目的。

// 首先找出git中前五大的文件:
git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -5

// 第一行的字母是文件的id,用以下命令可以找出id 对应的文件名:
git rev-list --objects --all | grep 8f10eff91bb6aa2de1f5d096ee2e1687b0eab007

// 首先,里面最重要的两条命令是 git filter-branch 和 gc,
// filter-branch 真正在清理,但是只运行它也是没用的,
// 需要再删除备份的文件,重新打包之类的,
// 最后的gc命令,用来收集产生的垃圾,最终清除大文件。
git filter-branch --index-filter 'git rm --cached --ignore-unmatch <your-file-name>'
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git fsck --full --unreachable
git repack -A -d
git gc --aggressive --prune=now
git push --force origin master
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐