生成一个 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 项目库
//产生一个关联你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
访问 https://github.com/ ,点击 "Start a project" 按钮,或者 "New repository"
点击 "Clone or download" 选择 SSH,复制地址比
如 "git@github.com:yourName/testProject.git"
在本地建立项目目录关联 github(请先安装 git)
git checkout master(切换回主开发测试分支)
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 pull origin master(先同步服务器端代码)
git merge my-dev(将my-dev代码合并到master)
git push origin master(提交合并后的代码到服务器端)
如何删除 git 历史中的大文件
// 合并完成并同步后记得切回个人分支,切勿在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 目录下饭了一个较大的文件,如 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
来源: http://blog.csdn.net/ywyxb/article/details/79055382