搜索
首页后端开发php教程Git常见相关知识与命令

安装git程序

ContOS

         Yum install –y epel-release

         Yum install –y git

Ubuntu

         Sudo apt-get install git

Windows上安装

         https://git-scm.com/download/win

安装完成以后还需要最后一步设置

         git config --global user.name "Qiang"//比如Qiang

         git config --global user.email "zhiqiangwang@aliyun.com"//写入到你的邮箱

 

创建版本仓库并推送文件

Mkdir /home/gitroot   //创建目录

Cd /home/gitroot     //进入目录

Git init //用命令初始化。让这个目录编程git可以管理的仓库

Ls –a //可以看到.git目录

Echo –e “QIANG”>1.txt //创建一个文件1.txt

Git add 1.txt //把1.txt添加到仓库中

Git commit –m “add new file 1.txt” //add完了必须要conmit才算真正把文件提交到git仓库里

Echo –e “QIANG QIANG”>> 1.txt //更改1.txt

Git status //查看当前仓库中的状态,比如是否有改动文件

Git checkout --1.txt//将仓库中的1.txt覆盖本地的1.txt

Git diff 1.txt /可以对比1.txt本次修改了什么内容,相比仓库里面的版本

 

删除文件

1.       git add test.txt

2.       git commit -m "add test.txt"

3.       rm test.txt

4.       git status

5.       git rm test.txt

6.       rm 'test.txt'

7.       git commit -m "remove test.txt"

 

上传当前目录下所有文件

1.       git add .

2.       git commit -m "updata all"

3.       git push

 

版本的变更

多次更改1.txt 并进行git add,git commit操作

Git log //可以查看所有提交git仓库的仓库记录操作

Git log –pretty=oneline 一行一行显示

通过git log可以查看到过去提交的所有版本,所以根据这个log可以指定回退某个版本

Git reset –hard d03da70182c1e78d04df1d7eee2f6a972ae4f82b //可以回退该版本,这里是长字符串,可以简写(前5个字符)

Git reflog //可以显示所有的版本

 

文件恢复

当修改1.txt 发现修改的不对,想修改上一次提交的状态

Git checkout –1.txt//恢复到上一次提交的状态

如果1.txt修改完成,保存后,git add 1.txt了 但是没有git commit,再想回退到上一次提交是的状态,可以使用

Git reset HEAD 1.txt

然后再

Git checkout –1.txt

 

文件删除

Echo “QIANG” >2.txt

Git add 2.txt

Git commit –m “add new file 2.txt”

Rm –f 2.txt

Git status

Git rm 2.txt

Git commit –m “delete 2.txt”//彻底删除2.txt

 

创建一个远程的仓库

1.先注册一个免费的仓库https://github.com/或https://git.oschina.net/

2.权限认证,添加key

  github :Setting->SSH and GPG keys->new SSH key->title和key输入进去

  oschina:个人资料->SSH公钥->添加公钥->标题和公钥输入进入

  生成密钥对:ssh-keygen

  Liunx: Cat /root/.ssh/id_rsa

Cat /root/.ssh/id_rsa.pub //公钥

  Windwos:Cat c:/Users/Cmd/.ssh/id_rsa

Cat c:/Users/Cmd/.ssh/id_rsa.pub

添加成功收到邮件

3.创建一个创建链接仓库

  3.1 Mkdir /home/gitroot   //创建目录

3.2 Cd /home/gitroot     //进入目录

3.3 Git init             //用命令初始化。让这个目录编程git可以管理的仓库

3.4 git remote add origin 仓库地址

   git remote add origin git@git.oschina.net:zhiqiangwang/Qiang.git

3.4.1 origin是你的仓库的别名 可以随便改,但请务必不要与已有的仓库别名冲突

3.4.2仓库地址一般来讲支持

3.5 Echo –e “QIANG”>Qiang.txt //新建Qiang.txt

3.6 git add Qiang.txt

3.7 git commit –m “add Qiang.txt”

3.8 git push –u origin master //把本地的Qiang仓库推送到远程Qiang

3.9 Echo –e “QIANG QIANG”>>Qiang.txt //在Qiang.txt后面追加QIANG QIANG

3.10 git add Qiang.txt

3.11 git commit –m “update Qiang.txt”

3.12 git push //把本地的Qiang仓库再次推送到远程Qiang

 

 

克隆一个远程的仓库

  Git clone git@git.oschina.net:zhiqiangwang/Qiang.git

 

分支管理

  Git branch 查看分支

  Git branch wang 创建分支

  git checkout wang 切换wang分支

 

分支合并

  Git merge wang //把wang分支合并到master

  合并常见的问题

1. 如果master分支和wang分支都对Qiang.txt进行编辑,当合并时提示冲突,许先解决冲突才可以继续合并

2.  解决冲突的方法就是在master分支下,编辑Qiang.txt,改为wang分支里面的Qiang.txt的内容,然后提交Qiang.txt,在进行合并

3.  如果master分支更改的内容是我们想要的,可以编辑Qiang.txt内容,改为想要的然后提交,切换到wang分支,然后合并 master分支到wang分支即可。Merge后面跟的分支名字一定是最新的分支

4.  Git branch –d wang //删除分支

5.  Git branch –D wang /如果分支没有合并,强制删除

 

使用分支的原则

 Master分支是非常重要的,线上发布代码的时候才用到这个分支

 Dev分支就是专门用于开发的,重要发布线上之前才会把dev分支合并到master

 开发人员应该才dev的基础上在分支成个人分支,个人分支里面开发代码,然后合并到dev分支

在dev分支合并bob分支命令就是

 Git checkout dev //先切换dev分支

 Git merge bob

 

现场保留

在wang 分支编辑wang.txt

去zhi分支修复bug,所以需要先git add wang.txt

然后 git stash保留现场

再切换zhi分支修复,修复完bug之后,在切回wang分支

Git stash list可以查看我们保留过的现场

Git stash apply 恢复现场

Git syash apply stash@{0} 恢复到指定现场

 

远程分支

git remote –v //查看远程库信息

git ls-remote origin//查看远程分支

推送本地分支wang到远程分支 wang并建立关联关系

a.  远程已有wang分支并且已经关联本地分支wang且本地已经切换到wang

git push

b.  远程已有wang分支但未关联本地分支wang且本地已经切换到wang

git push -u origin /wang

c.  远程没有有wang分支并,本地已经切换到wang

git push origin wang: wang

删除本地分支

git branch –d|-D wang

删除远程分支

git push origin  :wang

git branch -m | -M oldbranch newbranch 重命名分支,如果newbranch名字分支已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名。

 

标签管理

标签类是于快照功能,给一个版本库打一个标签,记录某个时刻的状态,也可以随时恢复该状态

1.  git checkout master 先切换master上

2.  git tag v1.0 给master打上一个标签v1.0

3.  git tag 查看所有的标签

4.  git log –-pretty=oneline –-abbrev-commit//查看历史commit

5.  git tag v0.9 d03da//针对历史commit打标签

6.  git tag –a –m “tag just v1.1” d03da//可以对标签进行描述

7.  git tag –d v0.8删除标签

8.  git push origin v1.0//推送到指定标签远程

9.  git push --tag origin//推送所有标签

10. git tag –d//删除本地标签

11. git push origin : refs/tags/v1.0删除远程标签

 

搭建git服务器

1.  Yum install git

2.  添加git用户,并设置shell为/usr/bin/git-shell,目的是为了不让git用户远程登录

Useradd –s /usr/bin/git-shell

3.  Cd /home/git

4.  创建authorized_keys文件,更改属主,属组合权限,用于存客户端机器上的公钥

5.  Mkdir.ssh

6.  ssh-keygen //使用该命令生成密钥对

7.  touch authorized_keys

8.  cat /home/git/id_rsa.pub>>/home/git/.ssh/authorized_keys.

9.  Chown –R git.ssh或者Chown 600 .ssh/authorized_keys

10. 定义存储git仓库的目录 /data/gitroot

Mkdir /data/gitroot

Cd /data/gitroot

11. Git init –bare sample.git //创建一个裸仓库,裸仓库没有工作区,因为服务器上的git仓库纯粹为了贡献,所以不让用户登录到服务器上改工作区,并且服务器上的git仓库通过以.git结尾

12. Chown –R git.git sample.git

以上操作是在git服务器上做的,平时git服务器不西药开发人员登录去修改代码,他仅仅是充当一个服务器的角色,就像github一样,平时都是在我们自己的pc上做的

在客户端上克隆远程仓库

Git clone git@ip:/data/gitroot/sample.git

此时可以进入sample目录下,这个就是我们克隆远程仓库。进入到这里面进行开发,然后push到远程


声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
您如何防止与会议有关的跨站点脚本(XSS)攻击?您如何防止与会议有关的跨站点脚本(XSS)攻击?Apr 23, 2025 am 12:16 AM

要保护应用免受与会话相关的XSS攻击,需采取以下措施:1.设置HttpOnly和Secure标志保护会话cookie。2.对所有用户输入进行输出编码。3.实施内容安全策略(CSP)限制脚本来源。通过这些策略,可以有效防护会话相关的XSS攻击,确保用户数据安全。

您如何优化PHP会话性能?您如何优化PHP会话性能?Apr 23, 2025 am 12:13 AM

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显着提升应用在高并发环境下的效率。

什么是session.gc_maxlifetime配置设置?什么是session.gc_maxlifetime配置设置?Apr 23, 2025 am 12:10 AM

thesession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceIsiseededeedeedeedeedeedeedto to to avoidperformance andununununununexpectedLogOgouts.3)

您如何在PHP中配置会话名?您如何在PHP中配置会话名?Apr 23, 2025 am 12:08 AM

在PHP中,可以使用session_name()函数配置会话名称。具体步骤如下:1.使用session_name()函数设置会话名称,例如session_name("my_session")。2.在设置会话名称后,调用session_start()启动会话。配置会话名称可以避免多应用间的会话数据冲突,并增强安全性,但需注意会话名称的唯一性、安全性、长度和设置时机。

您应该多久再生一次会话ID?您应该多久再生一次会话ID?Apr 23, 2025 am 12:03 AM

会话ID应在登录时、敏感操作前和每30分钟定期重新生成。1.登录时重新生成会话ID可防会话固定攻击。2.敏感操作前重新生成提高安全性。3.定期重新生成降低长期利用风险,但需权衡用户体验。

如何在PHP中设置会话cookie参数?如何在PHP中设置会话cookie参数?Apr 22, 2025 pm 05:33 PM

在PHP中设置会话cookie参数可以通过session_set_cookie_params()函数实现。1)使用该函数设置参数,如过期时间、路径、域名、安全标志等;2)调用session_start()使参数生效;3)根据需求动态调整参数,如用户登录状态;4)注意设置secure和httponly标志以提升安全性。

在PHP中使用会议的主要目的是什么?在PHP中使用会议的主要目的是什么?Apr 22, 2025 pm 05:25 PM

在PHP中使用会话的主要目的是维护用户在不同页面之间的状态。1)会话通过session_start()函数启动,创建唯一会话ID并存储在用户cookie中。2)会话数据保存在服务器上,允许在不同请求间传递数据,如登录状态和购物车内容。

您如何在子域中分享会议?您如何在子域中分享会议?Apr 22, 2025 pm 05:21 PM

如何在子域名间共享会话?通过设置通用域名的会话cookie实现。1.在服务器端设置会话cookie的域为.example.com。2.选择合适的会话存储方式,如内存、数据库或分布式缓存。3.通过cookie传递会话ID,服务器根据ID检索和更新会话数据。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。