GIT

Git 常用命令

//服务器上建立仓库
sudo git init --bare sample.git

//本地当前路径建立仓库
git init ./

//关联本地已有仓库和远程仓库
git remote add origin https://github.com/isonz/test.git

//远程仓库有密码时不想每次输入密码
git remote add origin https://username:password@github.com/isonz/test.git

//创建本地分支
git checkout -b dev

//删除分支
git branch -D dev
git branch -D origin/dev

//创建本地分支时同时创建远程分支
git checkout -b dev origin/dev

//关联本地分支和远程分支
git branch --set-upstream-to master origin/master

//切换到本地master分支
git checkout master

//提交到远程仓库,第一次提交需要带参数 u ,以后提交可以不用带
git push -u origin master

//从远程仓库拉取数据
git pull origin master

//当前分支与 dev 分支合并
git merge dev


//两种忽略版本控制方法,创建忽略版本控制文件名为:.gitignore,一行一个文件或文件夹,这些文件和文件夹需要在没有进行过版本控制前就列入,如果已经提交过版本,需要用以上2个命令来忽略。
git update-index --skip-worktree -- wp-config.php
git update-index --assume-unchanged -- wp-config.php

//加入缓存区前撤回修改
git checkout -- config.php

//加入缓冲区后提交之前撤回修改,此时回到添加到缓存区后状态
git reset HEAD readme.txt

//提交后的版本退回
git reset --hard 3628164


//设置快捷键
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci 'commit -m'
git config --global alias.br branch
git config --global alias.last 'log -1'
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%C
reset' --abbrev-commit"


//git update-index 操作
git update-index
             [ --add] [--remove | --force-remove] [--replace]
             [ --refresh] [-q] [--unmerged] [--ignore-missing]
             [ (--cacheinfo < mode> < object> < file>)…]
             [ --chmod=(+|-)x]
             [ --assume-unchanged | --no-assume-unchanged]
             [ --skip-worktree | --no-skip-worktree]
             [ --ignore-submodules]
             [ --really-refresh] [--unresolve] [--again | -g]
             [ --info-only] [--index-info]
             [ -z] [--stdin] [--index-version ]
             [ --verbose]
             [ --] [< file>…]
/**
参考
https://mirrors.edge.kernel.org/pub/software/scm/git/docs/git-update-index.html
**/

Git 更新
当操作 git 时出现以下情况时,一般需要更新 git 版本。

error: The requested URL returned error: 401 Unauthorized while accessing http://x.x.x.x

步骤:

git --version

yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

wget -O v1.8.1.2.tar.gz https://github.com/git/git/archive/v1.8.1.2.tar.gz
tar -xzvf ./v1.8.1.2.tar.gz
cd git-1.8.1.2/

make prefix=/usr/local all
make prefix=/usr/local install

git --version

git 问题汇编
出现:
fatal: recursion detected in die handler
解决:
是由于上传的包过大 HTTP 的头出错导致的

git fsck
git config http.postBuffer 524288000

error: RPC failed; result=18, HTTP code = 200

git config --global http.postBuffer 500000000   #500M
git config --list

gitweb配置,git通过http协议访问和通过浏览器浏览–linux
Centos 上安装了GIT 就能建立服务仓库,如果让客户机把文件上传到仓库,通过 gitweb 可以实现。
安装gitweb:

yum install git-daemon  gitweb 

安装好后,默认的服务目录是:/var/www/git,把这些文件拷贝一份到你想要的任何目录,我拷贝到 /home/git

cp -rf /var/www/git/* /home/git

如何到 /etc/gitweb.conf 配置 gitweb,修改 $projectroot的值

$projectroot = "/var/www/git";
$projectroot = "/home/git";

将来要创建服务仓库的话,就在 /home/git 目录下创建,创建方法:

cd /home/git
git init --bare www.a.com

在/home/git中就有 www.a.com的库了。

配置 Apache ,使其运行 webgit。

Listen 9031
NameVirtualHost *:9031
< VirtualHost *:9031>
    ServerName *:9031
    DocumentRoot /home/git/
    DirectoryIndex gitweb.cgi

    #此处需要安装 openssl,具体安装过程请看 http://www.redphp.net/openssl
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/ca.crt
    SSLCertificateKeyFile /etc/pki/tls/private/ca.key

    < Directory "/home/git/">
        Options +ExecCGI
        AddHandler cgi-script .cgi
        DirectoryIndex gitweb.cgi

        DAV on
        AllowOverride All
        Order Allow,Deny
        Allow from all

        AuthName "Ptp.cn Git Repository"
        AuthType Basic
        AuthUserFile /etc/httpd/conf.d/.htpasswd
        require valid-user
    < /Directory>
< /VirtualHost>


Listen 9030
NameVirtualHost *:9030
<VirtualHost *:9030>
    SetEnv GIT_PROJECT_ROOT /home/git/
    SetEnv GIT_HTTP_EXPORT_ALL
    ScriptAlias / /usr/libexec/git-core/git-http-backend/
    <Location "/">
        Dav on
        Order Allow,Deny
        Allow from all

        AuthType Basic
        AuthName "Git Access"
        AuthUserFile /etc/httpd/conf.d/.htpasswd
        require valid-user
    </Location>
</VirtualHost>

安装完成就可以通过 https://192.168.1.200:9031/ 输入设置的.htpasswd密码来浏览库目录了。
通过 git clone https://192.168.1.200:9031/www.a.com 克隆库
通过 git remote add origin https://192.168.1.200:9031/www.a.com 关联远程库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值