git学习笔记

Git学习笔记:

git difffilename 结果解析

---代表源文件 

+++代表目标文件

通常working area的文件都是被当作目标文件来看待。

  1. -开头的行,是只出现在源文件中的行
  2. +开头的行,是只出现在目标文件中的行
  3. 空格开头的行,是源文件和目标文件中都出现的行
  4. 差异按照差异小结进行组织,每个差异小结的第一行都是定位语句,由@@开头,@@结尾。

举例:

chenshu@chenshu-yangzhou-home:~/kaimei/data_service/src$git diff 0c5ee16a6a4c849d0ae0448caa8ff174399c7c3c ./socket_helper.cpp 

diff --git a/data_service/src/socket_helper.cpp b/data_service/src/socket_helper.cpp 

index d606452..047e213100755 

--- a/data_service/src/socket_helper.cpp 

+++ b/data_service/src/socket_helper.cpp 

@@ -4,6+4,7 @@ 

 #include"data/login_response.h" 

 #include"data/heartbeat_response.h" 

 #include"helper/parser.h" 

+#include"helper/time_measure.h" 

 #include<booster/log.h> 

 #include"exception/socket_error.h" 

 #include"exception/data_error.h" 

上面的diff结果表明

1.某个提交记录0c5ee代表的socket_helper.cpp文件是源文件,当前working areasocket_helper文件是目标文件。

2.在源文件第4行开始的6行和目标文件第4行开始的7行构成一个差异小结

3.这个差异小结中,目标文件添加了一行#include “helper/time_measure.h”

4.其他空格开头的行表明没有差异。

Git status用于查看仓库当前的状态。

Git log 查看日志信息,显示从最近到最远的提交的日志信息。

版本回退git reset –hard HEAD^,回退到上一个版本。HEAD表示当前的版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,如果想回到自己制定的那个版本,可以先找到对应版本的commit id ,然后git reset –hard +commit id就可以了。

工作区和暂存库:

工作区:就是你在电脑里能看到的目录,就是gitinit后的那个目录。

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

把文件往Git版本库里添加的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013745374151782eb658c5a5ca454eaa451661275886c6000

 

工作区,暂存区的关系图解:

git add 后,

Git commit 后,

 

提交到远程库:

git remote add origin 远程库地址

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库

git push –u origin分支名(master,dev,把本地库的内容推送到远程,用git push命令,由于远程库是空的,我们第一次推送分支时,加上了-u参数,Git不但会把本地的分支内容推送的远程新的分支,还会把本地的分支和远程的分支关联起来,在以后的推送或者拉取时就可以简化命令。省去-u参数。

查看git用户名和邮箱:gitconfig user.name ; git config user.email

修改git用户名和邮箱:

修改用户名: gitconfig --global user.name "用户名"

修改邮箱:git config--global user.emai “邮箱

git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置。

推送新的本地分支到远程git push origin2新分支名

克隆远程库代码到本地:进入到本地库的目录,gitclone 远程库地址,就可以克隆岛本地对应的目录里。

删除本地仓库中的文件,并且push到远程:

本地仓库:AB

服务器:C

今天在本地仓库A希望删除一个文件test,于是执行以下命令:

1

2

3

4

$ sudo rm test

$ git add .

$ git commit -m "delete test"

$ git push origin

在本地仓库检查,的确没有文件test了。然后再次从服务器拉下来看看,执行

1

$ git pull

test没有啦。我以为成功了。

但是在另一个客户端的本地仓库B拉下来,发现test又出来了。看来我以为的不是我以为的。
后来自己查资料,发现:
git add
表示 add to index only files created or modified and not those deleted
git add
只将新建的或者已更改的文件添加到索引区。(不会添加删除的文件

但是我们现在是通过先rm的命令,那应该如何完成提交,并真正从服务端删除呢:

git add -u
git add -u  
这个命令的意思是 add to index only files modified or deleted and not those created
只会处理已修改或者已删除的文件,但是不会处理新建的文件

好了,执行以下命令:

1

2

3

$ git add -u

$ git commit -m "delete test"

$ git push

这时候我们在本地git status发现,已经没有了那些提交信息。再去本地仓库B看看,
test
也没有了!

总结:如果我们要彻底通过git删除,分两种方式,如果先执行rm 命令去删除就可以使用本文的方法。
如果想通过git,可以使用git rm命令。

删除分支:

(1)    删除本地分支:在master分支下,gitbranch –d 删除分支;

(2)    删除远程分支:gitpush 远程库名:分支名。

删除远程仓库:$ git remote rm 远程仓库名

远程仓库重命名:

在新版 Git 中可以用 gitremote rename 命令修改某个远程仓库在本地的简称,比如想把 pb 改成paul,可以这么运行:

$ git remote rename pb paul

 

查看远程仓库的信息:可以通过命令 git remote show[remote-name] 查看某个远程仓库的详细信息,比如要看所克隆的 origin 仓库,可以运行:

$ git remote show origin

从远程获取最新版本到本地:

使用如下命令可以在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支,git fetch origin master:temp

比较本地仓库与下载的temp分支

使用如下命令来比较本地代码与刚刚从远程下载下来的代码的区别:git diff temp

合并temp分支到本地的master分支

对比区别之后,如果觉得没有问题,可以使用如下命令进行代码合并:git merge temp

删除temp分支

如果temp分支不想要保留,可以使用如下命令删除该分支:$ gitbranch -d temp

如果该分支的代码之前没有merge到本地,那么删除该分支会报错,可以使用Git branch-D temp强制删除该分支。这样,我们把远程仓库代码更新到本地了

 

Git fetchgit pull的区别

2013-03-04 10:58 58514人阅读 评论(4) 收藏 举报

Git中从远程的分支获取最新的版本到本地有这样2个命令:
1. 
git fetch:相当于是从远程获取最新版本到本地,不会自动merge

    
Git fetch origin master
git log -p master..origin/master
git merge origin/master

    以上命令的含义:
  
首先从远程的originmaster主分支下载最新的版本到origin/master分支上
  
然后比较本地的master分支和origin/master分支的差别
  
最后进行合并
   
上述过程其实可以用以下更清晰的方式来进行:

gitfetch origin master:tmp

gitdiff tmp 

gitmerge tmp

    从远程获取最新的版本到本地的test分支上
  
之后再进行比较合并
2. 
git pull:相当于是从远程获取最新版本并merge到本地

gitpull origin master

上述命令其实相当于git fetch git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
大学生在线租房平台管理系统按照操作主体分为管理员和用户。管理员的功能包括报修管理、报修评价管理、字典管理、房东管理、房屋管理、房屋收藏管理、房屋留言管理、房屋租赁管理、租房论坛管理、公告信息管理、留言板管理、用户管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 大学生在线租房平台管理系统可以提高大学生在线租房平台信息管理问题的解决效率,优化大学生在线租房平台信息处理流程,保证大学生在线租房平台信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理大学生在线租房平台信息,包括房屋管理,培训管理,报修管理,薪资管理等,可以管理公告。 房屋管理界面,管理员在房屋管理界面中可以对界面中显示,可以对房屋信息的房屋状态进行查看,可以添加新的房屋信息等。报修管理界面,管理员在报修管理界面中查看报修种类信息,报修描述信息,新增报修信息等。公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值