git笔记

2018-08-11  本文已影响23人  可笑可乐

分布式版本控制系统:优点离线使用、分支管理

1 基本用法

1 安装与配置

yum install git

git config --global user.name "wuzuquan"

git config --global user.email "403621433@qq.com"

git config --global color.ui true

git config http.sslVerify "false" 解除文件上传限制

2、创建仓库

mkdir -p git/test

cd git/test

git init:初始化,目录下多了个.git目录

注意事项:版本控制只能跟着文本文件的改动;如果没有历史遗留问题,统一使用UTF-8编码;不要使用windows记事本

3、基本使用

git add -A 添加所有修改,包括新增

git commit -m "message" 提交到本地仓库

git status 显示当前仓库status

git diff readme.md 显示修改内容

4、版本回退

git log --pretty=oneline 显示所有版本日志

HEAD表示当前版本 HEAD ^ HEAD ^^ HEAD ~100

git reset --hard commitid 版本回退

git reflog 显示所有命令记录

head指向当前分支

5、工作区 版本库

TIM图片20180811100113.png

stage 暂存区,master为自动创建的第一个分支

add命令是把修改添加到暂存区,可以多次add

commit命令是把暂存区的所有内容提交到当前分支

6、撤销修改

git checkout -- readme.md #撤销工作区的修改,撤销回到版本库一样,一键还原

如果已经添加到暂存区,又做了修改,现在撤销修改就回到添加到暂存区后的状态

注意事项:一定要加 -- ,不然就到另一个分支了

git reset 可以把暂存区的内容撤销,重新回到工作区

git reset HEAD readme.md

二者配合起来用

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。

2 远程仓库

1、推到远程库

git remote rm origin

git remote add origin git@server-name:path/repo-name.git

git push -u origin master

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

2、从远程库 克隆

$ git clone git@github.com:michaelliao/gitskills.git
Cloning into 'gitskills'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
Receiving objects: 100% (3/3), done.

3 分支管理

git checkout -b dev # 创建并切换到dev分支

git branch #查看当前分支

git add -A

git commit -m "dev branch test"

git checkout master # 切换到master分支

git merge dev #将dev分支内容合并到当前分支master

git branch -d dev # 删除dev分支

1、如何解决分支冲突

合并后提示冲突,git status命令查看哪些文件冲突

vim 修改冲突的文件

git add -A

git commit

git log --graph --pretty=oneline --abbrev-commit #查看分支合并情况

2、分支管理策略

master分支是非常稳定的,仅用于发布新版本,平时不能再上面干活

在dev分支干活,每个人可以有自己的分支

1.png

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并

4 标签管理

git tag v1.0 默认打在当前分支最新的commit上

git tag 查看所有tag

git tag -d v1.0 删除标签

git show v1.0 查看tag 信息

git tag -a v0.8 -m "version0.8 released" 6f9ea49

git push origin v0.8 推送tag到远程仓库

git push origin :refs/tags/v0.8 删除远程仓库tag

git push origin --tags 推送所有

5 个性化配置

在根目录下建立.gitignore文件,提交到git,过滤掉不需要提交的文件类型

6 搭建git服务器

yum install autoconf

yum install zlib

yum install zlib-devel

yum remove git 删除旧版本git

wget https://github.com/git/git/archive/v2.18.0.tar.gz

tar -vxf git-2.18.0.tar.gz

make configure

./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv

sudo make install install-doc install-html

sudo vim /etc/profile

在最后一行添加

export PATH=/usr/local/git/bin:$PATH

保存后使其立即生效

source /etc/profile
git --version

adduser testgit # 创建git账户

passwd testgit

vim /etc/ssh/sshd_config

1.RSAAuthentication yes

2.PubkeyAuthentication yes

3.AuthorizedKeysFile .ssh/authorized_keys

禁止testgit账户shell登录:

vim /etc/passwd
git:x:1001:1001:,,,:/home/git:/bin/bash

改为:git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

su testgit
mkdir .ssh
touch .ssh/authorized_keys
git init --bare test.git# 创建一个裸仓库

在客户端创建SSH密钥并上传

ssh-keygen -t rsa -C "403621433@qq.com"

该命令会产生两个文件: id_rsa对应私钥,id_rsa.pub对应公钥

将id_rsa.pub中的内容拷贝到服务器的authorized_keys文件

git init

git remote rm origin
git remote add origin testgit3@172.18.245.163:/home/testgit3/test.git

git push -u origin master

git remote -v #查看远程仓库信息

git push origin dev # 推送dev分支

git pull origin dev #拉分支

git branch --set-upstream-to=origin/dev dev #将远程分支与本地分支连接起来

git rebase

7、centos7搭建gitlab服务器

1. 安装依赖软件

yum -y install policycoreutils openssh-server openssh-clients postfix

2.设置postfix开机自启,并启动,postfix支持gitlab发信功能

systemctl enable postfix && systemctl start postfix

3、下载gitlab安装包

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

yum install policycoreutils-python

rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

4、修改gitlab配置文件制定服务器ip和自定义端口

vim /etc/gitlab/gitlab.rb

3.png

ps:注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口

5、启动gitlab

gitlab-ctl reconfigure

gitlab-ctl restart

netstat -lnp|grep 80 查看端口占用情况

ps 1328 查看进程详情

6、访问gitlab页面

初始账户: root 密码: 5iveL!fe

第一次进来修改密码

7、发信设置

vim /etc/gitlab/gitlab.rb

4.png

修改后执行gitlab-ctl reconfigure

测试邮件是否生效

gitlab-rails console

Notify.test_email('wuzuquan2@xiamenair.com', '邮件标题', '邮件正文').deliver_now

在卸载gitlab然后再次安装执行sudo gitlab-ctl reconfigure的时候往往会出现:ruby_block[supervise_redis_sleep] action run,会一直卡无法往下进行!

解决方案:

1、按住CTRL+C强制结束;

2、运行:sudo systemctl restart gitlab-runsvdir;

3、再次执行:sudo gitlab-ctl reconfigure

8、设置sshkeys

settings->ssh keys ,添加ssh 公钥

上一篇 下一篇

猜你喜欢

热点阅读