搜索
首页后端开发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
PHP的目的:构建动态网站PHP的目的:构建动态网站Apr 15, 2025 am 12:18 AM

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

PHP:处理数据库和服务器端逻辑PHP:处理数据库和服务器端逻辑Apr 15, 2025 am 12:15 AM

PHP在数据库操作和服务器端逻辑处理中使用MySQLi和PDO扩展进行数据库交互,并通过会话管理等功能处理服务器端逻辑。1)使用MySQLi或PDO连接数据库,执行SQL查询。2)通过会话管理等功能处理HTTP请求和用户状态。3)使用事务确保数据库操作的原子性。4)防止SQL注入,使用异常处理和关闭连接来调试。5)通过索引和缓存优化性能,编写可读性高的代码并进行错误处理。

您如何防止PHP中的SQL注入? (准备的陈述,PDO)您如何防止PHP中的SQL注入? (准备的陈述,PDO)Apr 15, 2025 am 12:15 AM

在PHP中使用预处理语句和PDO可以有效防范SQL注入攻击。1)使用PDO连接数据库并设置错误模式。2)通过prepare方法创建预处理语句,使用占位符和execute方法传递数据。3)处理查询结果并确保代码的安全性和性能。

PHP和Python:代码示例和比较PHP和Python:代码示例和比较Apr 15, 2025 am 12:07 AM

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

PHP行动:现实世界中的示例和应用程序PHP行动:现实世界中的示例和应用程序Apr 14, 2025 am 12:19 AM

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

PHP:轻松创建交互式Web内容PHP:轻松创建交互式Web内容Apr 14, 2025 am 12:15 AM

PHP可以轻松创建互动网页内容。1)通过嵌入HTML动态生成内容,根据用户输入或数据库数据实时展示。2)处理表单提交并生成动态输出,确保使用htmlspecialchars防XSS。3)结合MySQL创建用户注册系统,使用password_hash和预处理语句增强安全性。掌握这些技巧将提升Web开发效率。

PHP和Python:比较两种流行的编程语言PHP和Python:比较两种流行的编程语言Apr 14, 2025 am 12:13 AM

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

PHP的持久相关性:它还活着吗?PHP的持久相关性:它还活着吗?Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在现代编程领域中依然占据重要地位。1)PHP的简单易学和强大社区支持使其在Web开发中广泛应用;2)其灵活性和稳定性使其在处理Web表单、数据库操作和文件处理等方面表现出色;3)PHP不断进化和优化,适用于初学者和经验丰富的开发者。

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脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

EditPlus 中文破解版

EditPlus 中文破解版

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

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中