git安装与使用

Git安装

安装方法:使用yum安装

# 安装epel源
[root@bogon ~]# yum -y install epel-release.noarch
# 安装git
[root@bogon ~]# yum -y install git
# 创建一个目录并,初始化目录
[root@bogon ~]# mkdir /data
[root@bogon ~]# cd /data
[root@bogon ~]# git init
# 查看目录,初始化完成了
[root@bogon data]# ls -a
.  ..  .git
# 配置个人用户名
[root@bogon data]# git config --global user.name "yourname" 
# 配置个人邮箱
[root@bogon data]# git config --global user.email "youremail"

Git日常命令集合

git branch –a 查看分支 git branch –d 删除分支 git branch new1 新建分支 git branch 1.txt 添加一个修改文件

git checkout 切换分支(-f强制) git pull跟新 git stash pop 恢复最近一次改动 git status ./查看本地修改

git config --global user.name 配置个人用户名

git config --global user.email 配置个人邮箱

git config user.name查看配置的用户名

git status查看目前处于什么状态(Changes to be commited<已暂存尚未提交> Changes not staged for commit<已跟踪的文件修改后尚未暂存> Untracked files<尚未跟踪的文件>)

git log (commit hash(SHA-1 校验和) 作者的名字和电子邮件地址 提交时间 最后缩进一个段落显示提交说明)

git log –oneline –graph

git log –oneline 查看log的方法

git add 将文件加入到暂存区域

git commit 将暂存区域文件提到版本库,加上-a将已跟踪但未暂存的也包括在内

git rm 删除文件. --cached选项只删除索引, 保留文件, 即恢复成untracked状态

git push origin master orign为默认远程分支master为默认本地分支 可手动指定, 也可在gitconfig中指定默认远程配置, 即可直接使用

git push git checkout –b slm755 orgin/slm755创建本地分支并切换 git status ./vender 修改文件 git status (已提交(committed)-- 本地仓库(repository) 已暂存(staged)-- 暂存区域(staging area) 已修改(modified)-- 工作目录(working directory))

git diff ./……(文件名)修改内容 git pull (= git fetch + git merge)

更新 git checkout HEAD 修改未提交

git reset --hard HEAD还原至上一个提交(修改已经提交的)

git reset --hard HEAD所有未提交的内容清空
6

gitlab安装

# 安装提前软件
[root@bogon ~]# yum install curl policycoreutils openssh-server openssh-clients postfix -y
# 下载软件包(清华源)
[root@bogon ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
# 安装gitlab-ce
[root@bogon ~]# yum -y install gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
# 修改IP地址,web页面访问时要用
[root@bogon ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://本机IP'
# 配置重启gitlab,时间较长需要等待
[root@bogon ~]# gitlab-ctl reconfigure
# 查看状态
[root@bogon ~]# gitlab-ctl start
# gitlab服务管理命令(开启/关闭/重启)
[root@bogon ~]# gitlab-ctl start/stop/restart

web页面登入测试(访问地址是刚修改的IP)
登入前设置密码最少8位数
管理员名称位:root
在这里插入图片描述

GITLAB常用命令

1.运维管理
查看版本

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
实时查看日志

 gitlab-ctl tail
数据库关系升级

 gitlab-rake db:migrate
清理redis缓存

gitlab-rake cache:clear
升级GitLab-ce 版本

yum update gitlab-ce
升级PostgreSQL最新版本

 gitlab-ctl pg-upgrade
2.服务控制命令
启动/停止/重启所有 gitlab 组件:

gitlab-ctl start/stop/restart
启动指定模块组件:

 gitlab-ctl start redis/postgresql/gitlab-workhorse/logrotate/nginx/sidekiq/unicorn

停止指定模块组件:

gitlab-ctl stop 模块名
查看服务状态

gitlab-ctl status
生成配置并启动服务

 gitlab-ctl reconfigure
3.日志相关
实时查看所有日志

 gitlab-ctl tail
实时各个模块日志

gitlab-ctl tail redis/postgresql/gitlab-workhorse/logrotate/nginx/sidekiq/unicorn
Gitlab服务构成
GitLab由主要由以下服务构成,他们共同承担了Gitlab的运作需要

nginx: 静态web服务器
gitlab-shell: 用于处理Git命令和修改authorized keys列表
gitlab-workhorse: 轻量级的反向代理服务器
logrotate:日志文件管理工具
postgresql:数据库
redis:缓存数据库
sidekiq:用于在后台执行队列任务(异步执行)
unicorn:HTTP服务,GitLab Rails应用是托管在这个服务器上面的。

主要配置文件目录
主配置文件: /etc/gitlab/gitlab.rb
文档根目录: /opt/gitlab
默认存储库位置: /var/opt/gitlab/git-data/repositories
Nginx配置文件: /var/opt/gitlab/nginx/conf/gitlab-http.conf
Postgresql数据目录: /var/opt/gitlab/postgresql/data

 
重设管理员或指定用户密码

[root@test bin]# gitlab-rails console production
-------------------------------------------------------------------------------------
 GitLab:       11.10.4 (62c464651d2)
 GitLab Shell: 9.0.0
 PostgreSQL:   9.6.11
-------------------------------------------------------------------------------------
Loading production environment (Rails 5.0.7.2)
irb(main):001:0> user = User.where(id:1).first
=> #<User id:1 @root>
irb(main):002:0> user.password = 'qwer1234'
=> "qwer1234"
irb(main):003:0> user.password_confirmation = 'qwer1234'
=> "qwer1234"
irb(main):004:0> user.save
Enqueued ActionMailer::DeliveryJob (Job ID: 4752a4a4-4e85-4e8b-9f27-72788abfe97c) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", #<GlobalID:0x00007f519e7501d8 @uri=#<URI::GID gid://gitlab/User/1>>
=> true
irb(main):005:0> exit

 

使用smtp来发送邮件通知


vim /etc/gitlab/gitlab.rb

 gitlab_rails['smtp_address'] = "smtp.yourdomain.com"
 gitlab_rails['smtp_port'] = 25
 gitlab_rails['smtp_user_name'] = "xxx"
 gitlab_rails['smtp_password'] = "xxx"
 gitlab_rails['smtp_domain'] = "smtp.yourdomain.com" 
 gitlab_rails['smtp_authentication'] = 'plain'
 gitlab_rails['smtp_enable_starttls_auto'] = true

配置gitlab访问方式为https

# 创建ssl证书存放目录
    mkdir -p /etc/gitlab/ssl
    chmod 0700 /etc/gitlab/ssl

# 上传证书,修改证书访问权限
    chmod 600 /etc/gitlab/ssl/gitlab.xxx.com.crt

# 修改住配置,支持ssl访问
    vim /etc/gitlab/gitlab.rb
     external_url "[https://gitlab.bjwf125.com]            (https://gitlab.bjwf125.com)"
nginx['redirect_http_to_https'] = true
 nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.xxx.com.crt"
 nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.xxx.com.key"

# 重启
    gitlab-ctl reconfigure
# 开启防火墙

  firewall-cmd --zone=public --add-port=443/tcp --permanent
  firewal-cmd reload

 

备份
1.备份默认目录是/var/opt/gitlab/backups
  
gitlab-rake gitlab:backup:create
2.修改默认本分目录,vim /etc/gitlab/gitlab.rb

 gitlab_rails['backup_path'] = '/data/backups'
 

恢复

gitlab-rake gitlab:backup:restore BACKUP=serail_number_date
 

远程仓库相关命令

#检出仓库:
git clone git://github.com/jquery/jquery.git
#查看远程仓库: 
git remote -v
#添加远程仓库:
git remote add [name] [url]
#删除远程仓库:
git remote rm [name]
#修改远程仓库: 
git remote set-url --push [name] [newUrl]
#拉取远程仓库:
git pull [remoteName] [localBranchName]
#推送远程仓库:
git push [remoteName] [localBranchName]

#提交本地test分支作为远程的master分支
git push origin test:master
#提交本地test分支作为远程的test分支
git push origin test:test

分支(branch)操作相关命令

#查看本地分支:
git branch
#查看远程分支:
git branch -r
#创建本地分支:
git branch [name] ----注意新分支创建后不会自动切换为当前分支
#切换分支:
git checkout [name]
#创建新分支并立即切换到新分支:
git checkout -b [name]
#删除分支:
git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
#合并分支:
git merge [name] ----将名称为[name]的分支与当前分支合并
#创建远程分支(本地分支push到远程):
git push origin [name]
#删除远程分支:
git push origin :heads/[name] or gitpush origin :[name] 


创建空的分支:(执行命令之前记得先提交你当前分支的修改,否则会被强制删干净没得后悔)**

git symbolic-ref HEAD refs/heads/[name]
rm .git/index
git clean -fdx
 

 版本(tag)操作相关命令

#查看版本:
git tag
#创建版本:
git tag [name]
#删除版本:
git tag -d [name]
#查看远程版本:
git tag -r
#创建远程版本(本地版本push到远程):
git push origin [name]
#删除远程版本:
git push origin :refs/tags/[name]
#合并远程仓库的tag到本地:
git pull origin --tags
#上传本地tag到远程仓库:
git push origin --tags
#创建带注释的tag:
git tag -a [name] -m 'yourMessage'
 
 
子模块(submodule)相关操作命令
添加子模块:$ git submodule add [url] [path]
   如:$git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs
初始化子模块:$ git submodule init  ----只在首次检出仓库时运行一次就行
更新子模块:$ git submodule update ----每次更新或切换分支后都需要运行一下
删除子模块:(分4步走哦)
 1) $ git rm --cached [path]
 2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉
 3) 编辑“ .git/config”文件,将子模块的相关配置节点删除掉
 4) 手动删除子模块残留的目录

 

 忽略一些文件、文件夹不提交
在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如下:

# Maven
target/
../target
target/*
*.class
*.ser
*.ec

# IntelliJ Idea
.idea/
out/
*.ipr
*.iws
*.iml

# Eclipse
.classpath
.project
.settings/
.metadata/

# OS X
.DS_Store
Git常用命令汇总
git branch 查看本地所有分支
git status 查看当前状态 
git commit 提交 
git branch -a 查看所有的分支
git branch -r 查看本地所有分支
git commit -am "init" 提交并且加注释 
git remote add origin git@192.168.1.119:ndshow
git push origin master 将文件给推到服务器上 
git remote show origin 显示远程库origin里的资源 
git push origin master:develop
git push origin master:hb-dev 将本地库与服务器上的库进行关联 
git checkout --track origin/dev 切换到远程dev分支
git branch -D master develop 删除本地库develop
git checkout -b dev 建立一个新的本地分支dev
git merge origin/dev 将分支dev与当前分支进行合并
git checkout dev 切换到本地dev分支
git remote show 查看远程库
git add .
git rm 文件名(包括路径) 从git中删除指定文件
git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来
git config --list 看所有用户
git ls-files 看已经被提交的
git rm [file name] 删除一个文件
git commit -a 提交当前repos的所有的改变
git add [file name] 添加一个文件到git index
git commit -v 当你用-v参数的时候可以看commit的差异
git commit -m "This is the message describing the commit" 添加commit信息
git commit -a -a是代表add,把所有的change加到git index里然后再commit
git commit -a -v 一般提交命令
git log 看你commit的日志
git diff 查看尚未暂存的更新
git rm a.a 移除文件(从暂存区和工作区中删除)
git rm --cached a.a 移除文件(只从暂存区中删除)
git commit -m "remove" 移除文件(从Git中删除)
git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
git diff --cached 或 $ git diff --staged 查看尚未提交的更新
git stash push 将文件给push到一个临时空间中
git stash pop 将文件从临时空间pop下来
git remote add origin git@github.com:username/Hello-World.git
git push origin master 将本地项目给提交到服务器中
git pull 本地与服务器端同步
git push (远程仓库名) (分支名) 将本地分支推送到服务器上去。
git push origin serverfix:awesomebranch
git fetch 相当于是从远程获取最新版本到本地,不会自动merge
git commit -a -m "log_message" (-a是提交所有改动,-m是加入log信息) 本地修改同步至服务器端 :
git branch branch_0.1 master 从主分支master创建branch_0.1分支
git branch -m branch_0.1 branch_1.0 将branch_0.1重命名为branch_1.0
git checkout branch_1.0/master 切换到branch_1.0/master分支
du -hs

 

实例

mkdir WebApp
cd WebApp
git init
touch .gitignore
git add .gitignore
touch README
git add README
git commit -m 'first commit'
git remote add origin git@git.100credit.cn:application/test.git
git push -u origin master
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值