Git 常用命令

服务器上建立仓库

sudo git init --bare sample.git

区分文件大小写

全局:git config --global core.ignorecase false
单个:git config core.ignorecase false

本地当前路径建立仓库

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

提交到远程仓库

git push -u origin master

第一次提交需要带参数 u ,以后提交可以不用带
从远程仓库拉取数据

git pull origin master

当前分支与 dev 分支合并

git merge dev

两种忽略版本控制方法

git update-index --skip-worktree -- wp-config.php
git update-index --assume-unchanged -- wp-config.php

创建忽略版本控制文件名为:.gitignore,一行一个文件或文件夹,这些文件和文件夹需要在没有进行过版本控制前就列入,如果已经提交过版本,需要用以上2个命令来忽略。
加入缓存区前撤回修改

git checkout -- config.php

加入缓冲区后提交之前撤回修改

git reset HEAD readme.txt

此时回到添加到缓存区后状态
提交后的版本退回

git reset --hard 3628164

忽略文件权限修改的更新

git config core.filemode false
cat .git/config

设置快捷键

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://www.kernel.org/pub/software/scm/git/docs/git-update-index.html

当操作 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

出现: 
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 关联远程库

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值