git 初始化安装以及git常用命令

新建一个站点文件夹: myweb;

安装git 完成后,设置账号,在命令行输入:

git config --global user.name "php7"

git config --global user.email "[email protected]"

执行命令初始化:git init;  将myweb文件夹变成git管理的目录。

//现在开始拉取项目代码:

git clone https://github.com/php7/phpdev.git

这样就把项目代码克隆到myweb文件夹中了。

现在开始开发:

添加或修改一个文件: index.php

功能开发完毕开始上传:

git add index.php

git commit -m "修改index.php"

git push  提交新修改的文件到代码库。

提交完成后可以使用 git log   查看提交记录

命名行 输入  q  退出

输入 命令:  git log -p  查看具体代码修改情况

  注意: -红色的代码是你刚刚删除的代码;+绿色的代码是你刚刚添加的代码。

查看当前的提交情况:git status   看看添加了哪些文件,删除了哪些文件,改动了哪些文件

假如你在开发中,修改了a.php文件,过了一会想看看你刚刚改动了哪些地方,则使用命令: git diff a.php  就可以查看具体更改的代码;

比如你在开发中修改了好几次,提价了好几次代码,可以使用命令: git log  查看你提交的记录;git log命令显示从最近到最远的显示日志,我们可以看到最近三次提交。

也可以使用命令: git log - -pretty=oneline   查看,这样是吧每次提交的记录号以一行一行的显示出来。

如下:  

  $ git log --pretty=oneline
  1cffe5fbae504c968cd0486c851c7e761385cbdc 修改index.php登录地址
  29eb0a1c1f353201b1b50f261d0daa 添加a.php文件
  445527bfad7c8c0e34bc8b19489e5 修改index.php注册功能

我想把当前的版本回退到上一个版本,要使用什么命令呢?

可以使用如下2种命令,第一种是:git reset  - -hard HEAD^  那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset  - –hard HEAD~100 即可。

注意:这只是将本地的版本进行了回退。但是远程的版本库里面的内容仍然是最新的版本。

如果想将本地的版本更新到最新的版本,执行命令:git pull 即可。相当于再从远程拉取了最新的代码。

或者:使用命令 git reflog  查看每次更改的内容的版本:如下所示:

$ git reflog
1cffe5f [email protected]{0}: pull: Fast-forward
29eb0a1 [email protected]{1}: reset: moving to head^
1cffe5f [email protected]{2}: commit: 第二次修改index.php
29eb0a1 [email protected]{3}: commit: 添加a.php文件

git reset  - -hard 1cffe5f   即可恢复到最新的版本,1cffe5f版本号

工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。

 版本库(Repository)工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。

一:撤销修改:

比如我现在在 index.php 文件里面增加一行 内容为 echo "66666"; ,

在我未提交之前,我不想添加这段代码,(尚未执行git add index.php  ;  git commit ... )如果想恢复以前的版本,可以通过下面下几种方法修改:

第一:如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存区,最后commit掉。

第二:我可以按以前的方法直接恢复到上一个版本。使用 git reset  -–hard HEAD^

第三:直接执行:git checkout  - -   index.php  就可以了。可以撤销刚才你对index.php 的代码修改。

$ git checkout  - -   index.php

注意:命令git checkout - -  index.php   中的 — 很重要,如果没有  - -  的话,那么命令变成创建分支了。

但是如果你在修改了index.php  文件在中添加 内容 echo "66666"; 并且执行了 git  add index.php  ; git commit -m "添加666";命令后、在执行git push之前,又不想修改index.php了,

这个时候可以执行命令:

$ git reflog
6e64ddd [email protected]{0}: commit: 添加666
1bec9be [email protected]{1}: commit: 第三次修改index.php  (这个是你需要恢复的版本号,也就是你未修改之前的版本)
1cffe5f [email protected]{2}: pull: Fast-forward

然后执行:

$ git reset --hard 1bec9be
HEAD is now at 1bec9be 第三次修改index.php

此时你就把本地的代码恢复到 上一个版本了,(就是你没有修改之前的版本,也就是撤销了刚才的修改!)

注意:完成撤销,同时将代码恢复到前一commit_id 对应的版本

删除文件:

你在开发中添加并上传了一个b.php 并且更新提交了git。此时想删除b.php  。执行以下步骤:

1、 在本地直接删除b.php

2、执行命令:$ git rm b.php

        rm ‘b.php‘     可以使用 git  status查看当前的状态

3、执行命令  git  commit -m "删除b.php"

4、执行命令:  git  push  即可。

此时远程代码库,里面的b.php  已经被你删除了。

分支:

创建并切换分支:

首先,我们来创建dev分支,然后切换到dev分支上。如下操作

$ git checkout -b dev
Switched to a new branch ‘dev‘

git checkout 命令加上 –b参数表示创建并切换,相当于如下2条命令

git branch dev   查看所有分支

git checkout dev  切换到dev分支

git branch查看分支,会列出所有的分支,当前分支前面会添加一个星号

现在你在dev分支中,添加一个dev.php ;执行

git add  dev.php

git  commit -m "dev分支上添加dev.php"

git  push origin dev

$ git push origin dev   此时 远程git代码库上多出来一个dev分支。

现在dev分支工作已完成,

现在我们切换到主分支master上,

$ git checkout master
Switched to branch ‘master‘

继续查看dev.php内容,执行命令: ll -a   ;发现在master分支下,并不显示dev.php 。因为刚刚的dev.php 添加到了dev的分支上。

现在在master分支上可以 合并dev 分支,可以把dev分支上的内容合并到分支master上了,

使用如下命令 git merge dev 如下所示

$ git merge dev
Updating 8f2c28c..57ee7e5
Fast-forward
dev.php | 10 ++++++++++
1 file changed, 10 insertions(+)
create mode 100644 dev.php

合并之后 执行命令  ll   -a  查看文件,dev.php  显示了出来。

git merge命令用于合并指定分支到当前分支上

删除分支:

例如你想删除dev分支:

$ git branch -d dev
Deleted branch dev (was 57ee7e5).

删除后查看当前的分支:

$ git branch
* master

查看分支:git branch   (显示当前已经建立的所有分支,*表示当前所在的分支)

创建分支:git branch dev     //创建dev分支

切换分支:git checkout dev   //切换到dev分支上

创建+切换分支:git checkout –b dev

合并某分支到当前分支:git merge dev     //将dev 分支与当前所在的分支合并。

删除分支:git branch –d name   // git  branch -d  dev  :删除dev分支

#冲突解决:

假如我们 首先在master 分支下  在a.php 文件中 添加内容:  echo "我是在 master  分支上添加的";

  执行命令:git add a.php ;   git commit -m "master分支a.php 添加内容";     git  push origin master   (提交到远程master分支上)

然后在 首先在 dev  分支下  在a.php 文件中 添加内容:  echo "我是在 dev  分支上添加的";

  执行命令:git add a.php ;   git commit -m "dev分支a.php 添加内容";     git  push origin dev   (提交到远程dev 分支上) 

此时我们切换到 master 分支 去合并dev  分支出现如下:

$ git merge dev
Auto-merging a.php
CONFLICT (content): Merge conflict in a.php   / /此处提示 a.php  在合并的时候 出现冲突了
Automatic merge failed; fix conflicts and then commit the result.       // 自动合并失败;修复冲突,然后提交结果。

执行git  status  查看具体情况

$ git status
On branch master
Your branch is up-to-date with ‘origin/master‘.
You have unmerged paths.
(fix conflicts and run "git commit")

Unmerged paths:
(use "git add <file>..." to mark resolution)

both modified: a.php

no changes added to commit (use "git add" and/or "git commit -a")

我们打开a.php  查看里面的内容:

$ cat a.php
<?php

echo "添加a.php";

<<<<<<< HEAD
echo "wo zai master 分支上添加的";

=======
添加dev

echo "wo zai dev分支上添加的";
>>>>>>> dev

?>

上面红色的内容为冲突的代码。

Git用<<<<<<<,=======,>>>& gt;>>>标记出不同分支的内容,其中<<<HEAD是指主分支修改的内 容,>>>>>dev 是指dev 分支上修改的内容,

我们可以使用  vim a.php    修改下如下后保存:

$ cat a.php
<?php

echo "添加a.php";

echo "wo zai master 分支上添加的";

echo "wo zai dev分支上添加的";

?>

将冲突解决后,修改的文件更新发哦master分支上,执行以下命令即可:

git add a.php ; git commit -m " meger合并dev 删除a.php 内的冲突内容" ;   git push origin master  ;

此时在master 分支上 合并dev  分支  ,解决冲突更新git后成功了!。

修改提交后,可以使用git  log  查看提交记录:

$ git log
commit 0a52a0941162844f06ee591be
Merge: d06cf 43c65
Author: php7 <[email protected]>
Date: Wed Jun 13 22:13:46 2018 +0800

meger合并dev 删除a.php 内的冲突内容

参考:http://blog.jobbole.com/78960/   

 

原文地址:https://www.cnblogs.com/haoxuanchen2014/p/9180508.html

时间: 2024-07-29 18:20:35

git 初始化安装以及git常用命令的相关文章

CentOS 7安装Docker及常用命令

CentOS 7安装Docker及常用命令   yum install docker #安装docker systemctl start docker.service #启动docker systemctl enable docker.service #docker开机启动 docker -v #查看docker版本 docker info #查看docker具体信息 docker pull centos #下载centos image docker images #显示已有image dock

Git的原理简介和常用命令

Git和SVN是我们最常用的版本控制系(Version Control System, VCS),当然,除了这二者之外还有许多其他的VCS,例如早期的CVS等.顾名思义,版本控制系统主要就是控制.协调各个版本的文档内容的一致性,这些文档包括但不限于代码文件.图片文件等等.早期SVN占据了绝大部分市场,而后来随着Git的出现,越来越多的人选择将它作为版本控制工具,社区也越来越强大.相较于SVN,最核心的区别是Git是分布式的VCS,简而言之,每一个你pull下来的Git仓库都是主仓库的一个分布式版

git工具使用方法及常用命令

git下载地址:https://github.com/git/gitgit环境变量配置:增加:GIT_HOME = C:\Git (文件夹为git软件的安装文件夹)Path添加: %GIT_HOME%\bin;(bin目录是解压后出现的文件夹,里面有git.exe) git命令大全:pwd 输出clone到本地的路径dir 显示本地文件cd work进入文件夹git clone http://github.com/22337383/workgit clone -b v2 https://gith

Git初始化之思考git config命令的各参数有何区别

在之前出现的git config 命令中,有的使用 --global 参数,有的使用了 --system 参数,这两个参数有什么区别吗?执行下面的一系列命令后,你就会明白使用不同参数的 git config 命令实际操作的文件了. 执行下面的命令,将打开 /path/to/my/workspace/demo/.git/config 文件进行编辑. $ cd /path/to/my/workspace/demo/ $ git config -e 执行下面的命令,将打开 /home/fuhd/.gi

Git的使用流程及常用命令汇总

Git是一个很好用的版本控制系统,本文对于常用的一些命令进行了汇总. 创建一个存储仓库(repository) https://github.com/右上角点击"+"号,New repository,创建一个仓库,之后输入仓库的名字,描述和选择pubic/private. 配置SSH Key 为了能从远程仓库拉取文件到本地或将本地文件push到远程仓库,需要配置ssh key,否则会出现全选不允许的错误(permission denied).点击右上角头像-->settings-

ArchLinux最小化安装 必备库 常用命令

铸成强大的工作站环境——ArchLinux最小化安装 所有问题归结起来,只是一个问题:ArchLinux最小化安装,需要安装哪些包? 1.bash//最基本的Bash Shell(必须)2.bzip2//提供bzip2压缩与解压缩功能(非必须,但就算不选它,系统也会自动将其装上)3.coreutils//提供GNU环境下最基本的工具与命令(必须)4.dnsutils//DNS工具(必须)5.file//文件类型识别工具(必须)6.filesystem//提供基本的文件系统结构(必须)7.find

Docker学习---&gt;&gt;Docker的认识,安装,及常用命令熟悉

Docker是什么? 在平常的软件开发中,会面临着开发不同的程序或服务需要不同的环境.而在该环境上开发完成后,想要在其他的环境上部署,则需要自己去重新部署,而Docker的出现使得这样的迁移变得容易.举一个老生常谈的例子,也就是常说的集装箱,在以前运送货物的时候,不同的货物放到一起运送的话彼此会互相影响,比如运送水果的碰见运送铁块的.一不小心在货轮上会使得水果被压坏.而集装箱的出现则大大改变了这一情况.将水果放在一个集装箱中,将铁块放到另一个集装箱中.这样即使集装箱摞起来,彼此之间也不会影响.D

docker虚拟化安装配置与常用命令

一.Docker安装配置 docker只有在centos6.5以上机器才能使用yum直接安装,如果其他版本需要安装centos扩展源epel. docker官方文档说要求Linux kernel至少3.8以上,一般为centos6.5或者Ubuntu系统, 在Centos6.x系列安装docker软件,首先要关闭selinux,然后需要安装相应的epel源,如下: sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config wget

Linux下安装redis以及常用命令

1.获取redis资源 wget http://download.redis.io/releases/redis-4.0.8.tar.gz 2.解压 tar xzvf redis-4.0.8.tar.gz 3.安装 cd redis-4.0.8 make cd src make install PREFIX=/usr/local/redis 4.移动配置文件到安装目录下 cd ../ mkdir /usr/local/redis/etc mv redis.conf /usr/local/redi