从零开始的Linux运维屌丝之路,资源免费分享平台   运维人员首选:简单、易用、高效、安全、稳定、社区活跃的开源软件

Git Gitlab Github 入门笔记

发布:蔺要红05-31分类: 运维

一:GitLab安装
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh|sudo bash
yum install -y gitlab-ce #注意安装名称
vim /etc/gitlab/gitlab.rb

# 默认nginx等相关都安装了/最好独立服务器/并且配置https

external_url 'https://sh-gitlab.vipthink.com'  # 注意带s
gitlab_rails['time_zone'] = 'Asia/Shanghai'    # 时区

################################################################################
## GitLab NGINX
##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html
################################################################################

nginx['enable'] = true
nginx['client_max_body_size'] = '250m'
nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] = 80

nginx['ssl_certificate'] = "/etc/gitlab/ssl/1_vipthink.cn_bundle.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/2_vipthink.cn.key"


gitlab-ctl reconfigure
gitlab-ctl restart

# 完整配置/包含优化,防止运行一段时间CPU过高
external_url 'https://gitlab.grayvip.com'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['object_store']['enabled'] = false
gitlab_rails['object_store']['connection'] = {}
gitlab_rails['object_store']['storage_options'] = {}
gitlab_rails['object_store']['proxy_download'] = false
gitlab_rails['object_store']['objects']['artifacts']['bucket'] = nil
gitlab_rails['object_store']['objects']['external_diffs']['bucket'] = nil
gitlab_rails['object_store']['objects']['lfs']['bucket'] = nil
gitlab_rails['object_store']['objects']['uploads']['bucket'] = nil
gitlab_rails['object_store']['objects']['packages']['bucket'] = nil
gitlab_rails['object_store']['objects']['dependency_proxy']['bucket'] = nil
gitlab_rails['object_store']['objects']['terraform_state']['bucket'] = nil
unicorn['worker_processes'] = 2
unicorn['worker_memory_limit_min'] = "1024 * 1 << 20"
unicorn['worker_memory_limit_max'] = "1280 * 1 << 20"
postgresql['shared_buffers'] = "128MB"
postgresql['max_worker_processes'] = 2
nginx['enable'] = true
nginx['client_max_body_size'] = '250m'
nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] = 80
nginx['ssl_certificate'] = "/etc/gitlab/gitlab.grayvip.com.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/gitlab.grayvip.com.key"
prometheus_monitoring['enable'] =false

二:Git安装和基本操作

git本地库的创建和操作使用(Linux)
 
git checkout -b linyaohong   # 从当前分支切一个新的分支
git push --set-upstream origin lin  # 把本地分支推到远端仓库
git tag xxxxxxxxxxxx     # 打 tag
git  git push origin xxxxxxxxxxxx  # 推送tag
git merge lin   # 合并lin分支到当前分支


yum  -y install git            #安装
mkdir testgit  && cd testgit/  #创建一个空目录
git init                       #创建第一个本地仓库

git config --global user.email "lin@163.com"    #全局配置
git config --global user.name "Linyaohong"      #全局配置

git add readme.txt               #添加文件到缓冲区 readme.txt 为需要提交的文件
git commit -m "提交的注释"         #提交缓冲区文件到版本库

git log                          #显示提交日志 
git log --pretty=oneline         #简单的显示提交日志   


git log                       #退回老版本前,用git log可以查看提交历史,以便确定要回退到哪个版本
git reset --hard commit_id    #退回到历史版本
                              #或者git reset --hard HEAD (一个版本就是HEAD^,上上一个版本就是HEAD^^) HEAD代表当前版本
git reflog                    #查看命令历史、以便确定要回哪个版本

git status                    #查看状态和svn st相似


修改:关于提交需要注意的一个小问题:
第一次修改 -> git add -> 第二次修改   ->            git commit -m  "提交的注释" (不带文件名)
第一次修改 -> git add -> 第二次修改   -> git add -> git commit -m  "提交的注释" (不带文件名)
							或者               -> git commit -m  "提交的注释"  文件名 

#这两种方式是有区别的:(在命令行模式有很大区别)

不带文件名 只提交缓冲区的内容、不提交第二次修改的内容
带上文件名 即提交缓冲区(第一次add的内容)、也提交第二次修改的内容 

图解:

比较差异
提交后git diff HEAD -- readme.txt   #可以查看工作区和版本库里面最新版本的区别
git diff HEAD  -- newfile          #比较差异

修改
 
#当修改了文件时候:没add的情况下或者add的情况下
git checkout  -- readme.txt   #单个文件恢复到修改之前的状态
git reset --hard HEAD         #全部恢复到没修改之前的状态

#当已经commit的时候
git reflog                  #找到提交前的版本
git reset --hard 968689e    #退回版本即可

删除文件
#如果新增了很多文件、没有add 也没有ci 直接删除没有任何影响

#如果新增了test.txt文件、并且add了、没有commit然后本地又删除了
git checkout -- test.txt  #恢复到本地 
git reset --hard HEAD     #退回到当前版本、并且删除新增的文件/
 
#如果新增了test.txt文件 并且add commit  然后本地删除
#两个选择:
1  git reset --hard HEAD    #恢复

2  git rm test.txt           #从库中删除 
   git commit -m "备注"      #提交、彻底清除text.txt
温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,如有侵权我会在24小时之内删除!

欢迎使用手机扫描访问本站