git
设置代理
查看配置 git config --global -l 全局代理 git config --global http.proxy http://127.0.0.1:1088 git config --global https.proxy https://127.0.0.1:1088 git config --global http.proxy socks5://127.0.0.1:1088 git config --global http.proxy 'socks5://127.0.0.1:1088' 只设置github代理 git config --global http.https://github.com.proxy https://127.0.01:1080 git config --global https.https://github.com.proxy https://127.0.01:1080 设置socks5代理 git config --global http.https://github.com.proxy socks5://127.0.01:1080 git config --global https.https://github.com.proxy socks5://127.0.01:1080 取消代理 git config --global --unset http.proxy git config --global --unset https.proxy
连接多个帐户的github rsa认证
两种clone方式: git clone https://github.com/marsnut/vimrc.git git clone git@github.com:marsnut/vimrc.git ssh-keygen -t rsa -C "xwq20080101@163.com" -f ~/.ssh/id_rsa ssh-keygen -t rsa -C "xwq20080101@163.com" -f ~/.ssh/id_rsa_zhg 临时添加私钥到ssh-agent的session中 evel `ssh-agent` ssh-add ~/.ssh/id_rsa_zhg ssh-add -l 后台配置多个私钥 vim ~/.ssh/config Host gitlab HostName 58.87.95.128 PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_gitlab # git@github.com:phpzx/xxxx.git Host github.com User git HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_zhg # git@github-phpzx:phpzx/xxx.git Host github-phpzx User git HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github_phpzx_rsa chmod 755 ~/.ssh/ chmod 644 ~/.ssh/known_hosts chmod 600 ~/.ssh/id_rsa
git pull git pull 就是 git fetch + git merge o/master。 当你想要 push 你的新提交时,发现远程仓库在你上次拉取以后已经又有了改变,也就是说你的新 commit 是基于旧提交的修改,这种情况下 Git 是不允许你进行 push 操作的,你需要使自己的工作基于远程的提交,这个过程可以用以下命令: git fetch; git merge o/master git fetch; git rebase o/master 最简单的当然还是 git pull -r(git pull --rebase 的缩写) 然后再 git push 就没问题了。 在开发社区里,有许多关于 merge 与 rebase 的讨论。以下是关于 rebase 的优缺点: 优点:rebase 使你的提交树变得很干净, 所有的提交都在一条线上 缺点:rebase 修改了提交树的历史。比如,提交 C1 可以被 rebase 到 C3 之后。这看起来 C1 中的工作是在 C3 之后进行的,但实际上是在 C3 之前。 一些开发人员喜欢保留提交历史,因此更偏爱 merge。而其他人可能更喜欢干净的提交树,于是偏爱 rebase。仁者见仁,智者见智。
增加vim colorscheme repository
create a new repository on the command line echo "# vick" >> README.md git init git add README.md git commit -m "first commit" git remote add origin https://github.com/marsnut/vick.git git push -u origin master git add colors/vick.vim git commit -m "add the colorscheme file" git push origin master git add src/. #上传文件夹下的所有文件和文件夹 git commit -m "add src files" git push origin master
git编译安装
wget https://github.com/git/git/archive/v1.9.2.tar.gz tar -zxvf v1.9.2.tar.gz cd git1.9.2 make configure ./configure --prefix=/usr/local/git1.9.2 make all doc make install install-doc install-html vim /etc/profile.d/git.shell export PATH=$PATH:/usr/local/git1.9.2 source /etc/profile git --version SSL coonnect error: git config --global http.sslversion tlsv1 yum update nss
git config
查看配置 git config user.name git config user.email 配置 git config --global user.name "marsnut" git config --global user.email "xwq2008@gmail.com" 配置文件 /etc/gitconfig ~/.gitconfig .git/config
安装gitolite
1.配置服务器 git clone https://github.com/sitaramc/gitolite.git cd gitolite ./install --to /home/git/bin 2.设置管理客户机 ssh-keygen -t rsa -C 'szxwq01@163.com' scp .ssh/id_rsa.pub git@120.77.214.194:/tmp/admin.pub 3.服务器设置 以git用户登录 ./bin/gitolite setup -pk /tmp/admin.pub rm /tmp/admin.pub #删除pub文件 4.管理客户机 git clone git@120.77.214.194:gitolite-admin.git cd gitolite-admin vim conf/gitolite.conf >repo app > RW+ = vicky git add conf/gitolite.conf keydir/vicky.pub git commit -m "the first set up user" git push origin master
Linux下搭建Git服务器
1.安装 yum install -y git git --version 2.设置用户 useradd git -d /home/git -m -s /bin/bash -d:指定用户目录 -m:如果目录不存在则创建 -s:可以指定用户使用的命令 passwd git 设置密码 3.创建Git仓库 #mkdir -p data/git/gittest.git cd /home/git git init --bare gittest.git chown -R git:git gittest.git 4.客户端生成密钥 ssh-keygen -t rsa -C "szxwq01@163.com" 导入公钥到服务器authorized_keys 修改 .ssh 目录的权限为 700 修改服务器 .ssh/authorized_keys 文件的权限为 600 5.服务器端git打开RSA认证 #vim /etc/ssh/sshd_config RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys 重启服务 systemctl restart sshd.service 6.禁止git用户登录 usermod -s /bin/git-shell git 7.客户端clone远程仓库 git clone git@120.77.214.194:/root/data/git/gittest.git 8.提交文件到本地库 git add readme.txt git add weather.py git add dict.py git commit -m 'the primary file' 9.提交到远程库 git push origin master 10.查看版本库 git status git log 查看提交历史 git log --pretty=oneline git reflog 查看命令历史, 返回未来版本 git diff HEAD --readme.txt 查看工作区和版本库的区别 11.回退版本 git reset --hard HEAD^ 回退指向到上一个版本 git reset --hard HEAD^^ 回退指向到上上个版本 git reset --hard HEAD~10 git reset --hard 36281aa 回退到指定的版本号 git checkout --readme.txt 丢弃工作区的修改 git reset HEAD readme.txt 回退指向版本,并丢弃工作区的修改 12.删除文件 git rm readme.txt git commit -m 'remove file:readme.txt' i3.客户端连接github远程库 在github上'Create repository', 创建本地库 mkdir pythontest cd pythontest git init git add readme.txt git commit -m 'add the first file' 关联到远程库 git remote add origin git@github.com:marnut/pythontest.git git push -u orgin master 提交到远程库 由于远程库是空的,第一次推送时加参数-u, 表示关联本地master分支到远程master分支 14.分支管理 git checkout -b dev 相当于 git branch dev 创建分支 git checkout dev 切换到dev分支 git branch 显示分支 git add readme.txt git commit -m 'modify dev for readme.txt' git checkout master 切换回到master分支 git merge dev 合并dev分支到master分支 git merge --no-ff dev 合并dev分支,禁用fast forward git branch -d dev 删除dev分支 查看远程库 git remote -v
2018-01-03
无限流量的Blog----github Pages和Jekyll入门
hexo配置
我的博客:marsnut.github.io 运行 git Bash 客户端,输入如下代码: $ cd ~/.ssh 创建一个 SSH key $ ssh-keygen -t rsa -C "your_email@example.com" 拷贝 id_rsa.pub 文件的内容到github设置ssh key 测试一下该SSH key $ ssh -T git@github.com npm install hexo-cli -g hexo init blog cd blog npm install hexo server npm install hexo-deployer-git --save 配置git git config --global user.name "marsnut" git config --global user.email "xwq20080101@gmail.com" 下载NexT主题 cd blog git clone https://github.com/iissnan/hexo-theme-next themes/next vim _config.yml language: zh-Hans deploy: type: git repo: git@github.com:yourname/yourname.github.io.git branch: master theme: next npm install hexo-deployer-git --save hexo g hexo d 或 hexo d -g