git的日常应用

参考资料:http://git-scm.com/book/zh/v1

环境:

1.代码部署在内网git服务器上,简称git服务器。

2.个人办公机器,简称个人电脑

3.线上服务器

4.个人电脑通过ssh公钥联通git服务器以及线上服务器


需求:通过个人电脑把代码发布更新到线上服务器

一.个人电脑上的git操作。

在工作目录中初始化新仓库


[email protected]:/web/www.kutongji.com$ mkdir www.gits
[email protected]:/web/www.kutongji.com$ cd 
[email protected]:/web/www.kutongji.com/www.gits$ git init
[email protected]:/web/www.kutongji.com/www.gits$ git status
On branch master

Initial commit

nothing to commit (create/copy files and use "git add" to track)
[email protected]:/web/www.kutongji.com/www.gits$ ll -a
total 12
drwxrwxr-x 3 huwei huwei 4096  7月 24 14:14 ./
drwxrwxr-x 4 huwei huwei 4096  7月 24 14:14 ../
drwxrwxr-x 7 huwei huwei 4096  7月 24 14:21 .git/

用户信息

第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:

[email protected]:/web/www.kutongji.com/www.gits$ git config --global user.name "weihu"
[email protected]:/web/www.kutongji.com/www.gits$ git config --global user.email  "[email protected]"

查看配置信息

[email protected]:/web/www.kutongji.com/www.gits$ git config --list 
user.name=weihu
[email protected]
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true

克隆Git服务器上代码到本地git目录

[email protected]:/web/www.kutongji.com/www.gits$ git clone [email protected]:kutongji/www_old.git
Cloning into ‘www_old‘...
remote: Counting objects: 31397, done.
remote: Compressing objects: 100% (8608/8608), done.
remote: Total 31397 (delta 20722), reused 31300 (delta 20671)
Receiving objects: 100% (31397/31397), 63.94 MiB | 10.93 MiB/s, done.
Resolving deltas: 100% (20722/20722), done.
Checking connectivity... done.
[email protected]:/web/www.kutongji.com/www.gits$ ll -a
total 16
drwxrwxr-x  4 huwei huwei 4096  7月 24 14:31 ./
drwxrwxr-x  4 huwei huwei 4096  7月 24 14:14 ../
drwxrwxr-x  7 huwei huwei 4096  7月 24 14:21 .git/
drwxrwxr-x 10 huwei huwei 4096  7月 24 14:31 www_old/

其中www_old文件为本地git服务器文件,即开发环境。

[email protected]:/web/www.kutongji.com/www.gits$ cd www_old/
[email protected]:/web/www.kutongji.com/www.gits/www_old$ ll -a
total 48
drwxrwxr-x 10 huwei huwei 4096  7月 24 14:31 ./
drwxrwxr-x  4 huwei huwei 4096  7月 24 14:31 ../
drwxrwxr-x  9 huwei huwei 4096  7月 24 14:31 application/
drwxrwxr-x  6 huwei huwei 4096  7月 24 14:31 data/
drwxrwxr-x  4 huwei huwei 4096  7月 24 14:31 docs/
drwxrwxr-x  8 huwei huwei 4096  7月 24 14:31 .git/
-rw-rw-r--  1 huwei huwei  137  7月 24 14:31 .gitignore
drwxrwxr-x  3 huwei huwei 4096  7月 24 14:31 library/
drwxrwxr-x  7 huwei huwei 4096  7月 24 14:31 public/
-rwxrwxr-x  1 huwei huwei 1335  7月 24 14:31 README.md*
drwxrwxr-x  4 huwei huwei 4096  7月 24 14:31 scripts/
drwxrwxr-x  3 huwei huwei 4096  7月 24 14:31 tests/
[email protected]:/web/www.kutongji.com/www.gits/www_old$ git remote -v
origin	[email protected]:kutongji/www_old.git (fetch)
origin	[email protected]:kutongji/www_old.git (push)

二.线上服务器操作

思路:线上服务器创建两个git目录A,B。其中A为git裸库,负责接受个人电脑的推送以及更新

目录B为代码发布区,clone目录A,在裸库更新后通过git pull获取更新,实现代码更新以及回滚。

git init --bare

创建裸库的操作

[[email protected] www.gits]# git init --bare
Initialized empty Git repository in /web/www.kutongji.com/www.gits/
[[email protected] www.gits]# ll -a
total 40
drwxr-xr-x. 7 root root 4096 7月  24 14:43 .
drwxr-xr-x. 4 root root 4096 7月  24 14:40 ..
drwxr-xr-x. 2 root root 4096 7月  24 14:43 branches
-rw-r--r--. 1 root root   66 7月  24 14:43 config
-rw-r--r--. 1 root root   73 7月  24 14:43 description
-rw-r--r--. 1 root root   23 7月  24 14:43 HEAD
drwxr-xr-x. 2 root root 4096 7月  24 14:43 hooks
drwxr-xr-x. 2 root root 4096 7月  24 14:43 info
drwxr-xr-x. 4 root root 4096 7月  24 14:43 objects
drwxr-xr-x. 4 root root 4096 7月  24 14:43 refs
[[email protected] www.gits]# git config --global user.name "weihu"
[[email protected] www.gits]# git config --global user.email  "[email protected]"
[[email protected] www.gits]# git config --list
user.name=weihu
[email protected]
core.repositoryformatversion=0
core.filemode=true
core.bare=true

在个人电脑目录上操作

切换到代码目录:
[email protected]:/web/www.kutongji.com/www.gits/www_old$ cd ..
[email protected]:/web/www.kutongji.com/www.gits$ cd www_old/
查看目录关联的远程机,很明显因为从git服务器上clone,因此目录里面有一个主机是origin表示git主机
[email protected]:/web/www.kutongji.com/www.gits/www_old$ git remote -v
origin	[email protected]:kutongji/www_old.git (fetch)
origin	[email protected]:kutongji/www_old.git (push)
添加线上服务器主机,其中[email protected]:/web/www.kutongji.com/www.gits为裸库git地址,kutongji为一个主机别名,并非真实主机名称
[email protected]:/web/www.kutongji.com/www.gits$ git remote add kutongji [email protected]:/web/www.kutongji.com/www.gits
[email protected]:/web/www.kutongji.com/www.gits/www_old$ git remote -v
kutongji	[email protected]:/web/www.kutongji.com/www.gits (fetch)
kutongji	[email protected]:/web/www.kutongji.com/www.gits (push)
origin	[email protected]:kutongji/www_old.git (fetch)
origin	[email protected]:kutongji/www_old.git (push) 
查看本地目录的分支

[email protected]:/web/www.kutongji.com/www.gits/www_old$ git branch 
* develop
推送本地分支到线上服务器裸库
[email protected]:/web/www.kutongji.com/www.gits/www_old$ git push kutongji develop 
Counting objects: 31357, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (8517/8517), done.
Writing objects: 100% (31357/31357), 63.93 MiB | 10.19 MiB/s, done.
Total 31357 (delta 20722), reused 31357 (delta 20722)
To [email protected]:/web/www.kutongji.com/www.gits
 * [new branch]      develop -> develop
推送成功
切换到线上服务器
[[email protected] www.kutongji.com]# ll -a
total 16
drwxr-xr-x. 4 root root 4096 7月  24 14:40 .
drwxr-xr-x. 3 root root 4096 7月  24 14:40 ..
drwxr-xr-x. 7 root root 4096 7月  24 14:43 www.gits
drwxr-xr-x. 2 root root 4096 7月  24 14:40 wwwroot
[[email protected] www.kutongji.com]# cd wwwroot/
配置git库以及个人信息
[[email protected] wwwroot]# git init
Initialized empty Git repository in /web/www.kutongji.com/wwwroot/.git/
[[email protected] wwwroot]# git config --global user.name "weihu"
[[email protected] wwwroot]# git config --global user.email  "[email protected]"
[[email protected] wwwroot]# git config --list
user.name=weihu
[email protected]
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true

使用git remote add添加主机

[[email protected] wwwroot]# git remote add kutongji /web/www.kutongji.com/www.gits
[[email protected] wwwroot]# git remote -v
kutongji	/web/www.kutongji.com/www.gits (fetch)
kutongji	/web/www.kutongji.com/www.gits (push)

更新代码

[[email protected] wwwroot]# git pull kutongji develop
remote: Counting objects: 31357, done.
remote: Compressing objects: 100% (8517/8517), done.
remote: Total 31357 (delta 20722), reused 31357 (delta 20722)
Receiving objects: 100% (31357/31357), 63.93 MiB | 18.00 MiB/s, done.
Resolving deltas: 100% (20722/20722), done.
From /web/www.kutongji.com/www.gits
 * branch            develop    -> FETCH_HEAD

查看是否成功

[[email protected] wwwroot]# ll -a
total 48
drwxr-xr-x. 10 root root 4096 7月  24 15:26 .
drwxr-xr-x.  4 root root 4096 7月  24 15:23 ..
drwxr-xr-x.  9 root root 4096 7月  24 15:26 application
drwxr-xr-x.  6 root root 4096 7月  24 15:26 data
drwxr-xr-x.  4 root root 4096 7月  24 15:26 docs
drwxr-xr-x.  8 root root 4096 7月  24 15:26 .git
-rw-r--r--.  1 root root  137 7月  24 15:26 .gitignore
drwxr-xr-x.  3 root root 4096 7月  24 15:26 library
drwxr-xr-x.  7 root root 4096 7月  24 15:26 public
-rwxr-xr-x.  1 root root 1335 7月  24 15:26 README.md
drwxr-xr-x.  4 root root 4096 7月  24 15:26 scripts
drwxr-xr-x.  3 root root 4096 7月  24 15:26 tests
时间: 2024-10-08 18:53:56

git的日常应用的相关文章

git的日常操作

1) 安装Git 2) 配置用户信息 git config --global user.name "username" git config --global user.email "email" git config --global color.ui true 3) 生成公钥对 ssh-keygen –t rsa 在用户的主目录下的.ssh/中,把id_rsa.pub变为username.pub发给管理员 4) clone远程的仓库 git clone [ema

关于git你日常工作中会用到的一些东西

前言 git是一个版本控制工具, 版本控制主要的好处有三点: 从当前版本回退到任意版本 查看历史版本 对比两个版本差异 git 相关术语 repository 仓库 branch 分支 summary 摘要 track 跟踪 modify 修改 stage 暂存 commit 提交 push 推送 pull 拉取 clone 克隆 amend 修改 merge 合并 conflict 冲突 origin 源 upstream 上游 downstream 下游 verbose 详情 reflog

git的日常使用命令

日志输出参数 命令示例: git log –oneline –graph –-author="fireway" ——只显示某个用户的提交任务 –-name-only ——只显示变更文件的名称 –-oneline——将提交信息压缩到一行显示 –-graph ——显示所有提交的依赖树 –-reverse ——按照逆序显示提交记录(最先提交的在最前面) –-after ——显示某个日期之后发生的提交 –-before ——显示发生某个日期之前的提交 例如, git log –author=&

git命令日常操作

git提交代码(mac终端) cd /d/code/webapp 定位到当前项目 git status 查看改变的文件 git branch 查看项目分支名,以免提交错 git pull origin dev-18-09-05(这是git branch后显示的分支名) 提交前更新代码,这里可能需要输入账号密码 git add 复制粘贴git status后显示的已改文件路径,有多个需要连续git add,比如: git add src/modules/home/new.vue 回车 git ad

git命令日常工作总结

常用git命令git commit -m "fix:问题描述 # 出问题的CM-jiro号" 如 提交记录描述模板:fix(admin/统计/企业支付): "导出所有用户信息" 点击无响应 #CM-31334 git branch -r 查看远程所有分支git branch -a 查看本地和远程所有分支git branch -a 查看远程分支(当前分支.同级分支.上一级分支.下一级分支,不能查看其它分支的子分支)git branch -a | grep CM-305

个性定制你的 Git 命令行提示符

1, 让BASH 命令行显示当前支线 以及 显示提交状态 并且使用不同颜色高亮区分 效果图: 进入到git的工作目录后,显示当前所在支线名称 如果有已跟踪 未暂存的版本,那么使用红色* 提示 如果有已跟踪 未提交的版本,那么使用**** 提示 切换到其他支线后 提示符能打印当前支线名称 切换到非Git工作目录后,不影响其他操作. 定制原理:主要就是修改 PS1 变量(如果不知道PS1是什么,那么请先了解). 修改bashrc  不管是全局的,还是当前用户的 function get_git_br

Git reset head revert 回滚

Overview 涉及Git一些日常操作 :) 基础知识 <Pro Git>至少了解branch,commit的概念,及基本的原理 Git常用魔法 存档:master代码回滚方法 我是QA,我用Git Git 工作区.暂存区和版本库 Overview 暂存区(stage, index)是 Git 最重要的概念之一 工作区: 你的目录下面的文件们 暂存区: 由.git/index保存引用,.git/object保存对象的区域 版本库: 仓库 Relations Why stage before

使用Grokmirror镜像服务(1)——镜像内核Git仓库

目录 目录 需求的提出 什么是Grokmirror grokkorg grokmirror is mirror of korg 工作流程 manifest文件 安装Grokmirror GitPython anyjson Grokmirror 设置Grokmirror reposconf kernelorglog projectslist 运行Grokmirror 手动运行Grokmirror WTF is bare repository 使用git hooks更新本地manifest文件 使用

git图解:代码区域总结

本文背景,在实际项目中使用git已有一年多,发现不少同事虽然会使用常用git指令,但并不理解每个指令对应的作用原理.今天静下心总结下git 的基本理解:代码的存在区域:本文以实际项目出发,理清使用git过程中,代码的迁徙流程. git跟传统的代码管理器(如:svn)不同, 主要区别在于git多了个本地仓库以及缓存区,所以即使无法联网也一样能提交代码.术语解释: 工作区间: 即我们创建的工程文件, 在编辑器可直观显示: 缓存区: 只能通过git GUI或git shell 窗口显示,提交代码.解决