git


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 本地与远程仓库同步操作

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。仁者见仁,智者见智。

github markdown语法

Git实用技巧和命令

git客户端登录多个服务器

CentOS 7下搭建配置SVN服务器

CentOS6.5 Gitolite构建Git服务器

Gitolite轻松部署/管理git server

centos+git+gitolite 安装和部署

Git,Github和Gitlab

增加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 服务器

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

markdown编辑器

hexo官网

无限流量的Blog----github Pages和Jekyll入门

使用Hexo+Github搭建属于自己的博客

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