博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git&GitHub(1)——常用git操作
阅读量:4056 次
发布时间:2019-05-25

本文共 2834 字,大约阅读时间需要 9 分钟。

目录


一、Git设置签名

Git设置的签名有两种级别。

1、仓库级别:只针对当前仓库有效。

$ git config user.name "Your Name"$ git config user.email "email@example.com"

签名保存位置:当前仓库隐藏文件夹:.git/config

2、全局级别:在全局范围内都有效,即系统用户级别。

$ git config --global user.name "Your Name"$ git config --global user.email "email@example.com"

签名保存位置:当前系统用户文件夹下:~/.gitconfig 

3、级别优先级

  • 仓库级别优先于系统用户级别,二者都有时采用仓库级别的签名
  • 一般情况下都是配置成全局有效即可,简单,不用为每个仓库都设置签名。

二、Git提交操作

1、$ git init 初始化仓库

2、$ git status 状态查看

3、$ git add [file] 工作区修改内容添加到暂存区

3.1、首先在当前仓库下新建一个文件 app.txt

3.2、$ git status 状态查看

会有一个未被追踪的文件app.txt

3.3、$ git add app.txt 将工作区的app.txt添加到暂存区

4、$ git commit -m "message" 提交到本地库

再次查看状态

5、删除文件

5.1、单纯的在工作区(本地)删除文件

  1. 直接使用文件资源管理器删除,右键菜单删除
  2. 使用命令行
$ rm 文件名# 例如:$ rm test.txt

此时,只是在本地删除了文件,因此工作区和版本库就不一致了, git status命令会立刻告诉你哪些文件被删除了

$ git statusOn branch masterChanges not staged for commit:  (use "git add/rm 
..." to update what will be committed) (use "git checkout --
..." to discard changes in working directory) deleted: test.txtno changes added to commit (use "git add" and/or "git commit -a")

5.2、从版本库中删除文件

使用命令git rm删掉,并且git commit

$ git rm test.txt$ git commit -m "remove test.txt"

5.3、恢复工作区删除的文件

只是将工作区的文件删除了,版本库(暂存区、远程库)里可以很轻松地把误删的文件恢复到最新版本

$ git checkout -- test.txt

5.4、使用git rm 删除文件的误删

相当于不仅删除了文件,而且还添加到了暂存区

需要先git reset HEAD <file>,然后再git checkout -- <file>

5.5、递归删除目录下所有文件

$ git rm * -r

5.6、删除文件夹

$ git rm 文件夹名称 -r -f#或者: $git rm -rf 文件夹名

三、历史记录与版本管理

1、查看历史记录

1.1、$ git log

1.2、$ git log的其他格式

命令形式如下:

git log [
] [
..
] [[--]
...]

参考:、

1.3、$ git reflog

2、版本管理

准备工作:对app.txt进行多次修改,显示日志:

                     

2.1、版本回退

基于索引值操作

$ git reset --hard 局部索引值

使用^符号:只能后退。

$ git reset --hard HEAD^  注:一个^表示后退一步,n 个表示后退 n 步

使用~符号:只能后退 。

$ git reset --hard HEAD~n  注:表示后退 n 步

2.2、版本前进

$ git reset --hard 局部索引值

3、$ git reset 参数对比

3.1、$ git reset --soft

仅在本地库改变HEAD指针,即进行版本前进后退的时候只改变本地库的文件。

工作区和暂存区文件都不会改变

3.2、$ git reset --mixed

在本地库改变HEAD指针,同时重置暂存区的文件。

但是工作区的文件不会改变。

3.3、$ git reset --hard

在本地库改变HEAD指针,同时重置暂存区的文件,同时改变工作区的文件

4、文件修改操作恢复

4.1、文件删除操作恢复

前提:删除前,文件存在时的状态提交到了本地库。

此时,使用$ git reset --hard 版本号,回退到删除前的版本。

如果删除的操作作尚未提交到本地库:指针位置使用 HEAD,即撤销删除的操作。

4.2、eclipse中恢复单个文件的修改操作

Food.java 与 Meal.java都被修改,只需要还原Meal.java修改的内容。

找到要还原的文件,右键,选择team->show in history,查看下面的截图。

选中compare mode 按钮,然后双击要还原的文件版本

在左侧文件(已经修改的文件)右键,选则repalce with ->Pervious from Local History 即可还原当前文件到对应的版本。

5、比较文件差异

5.1、$ git diff  [文件名]

将工作区中的文件和暂存区进行比较

5.2、$ git diff [本地库中历史版本] [文件名]

四、分支

1、分支操作

1.1、查看分支: $ git branch -v

1.2、创建分支 :$ git branch [分支名]

1.3、切换分支:$ git checkout [分支名]

2、分支合并

2.1、场景

在分支和master主干中对同一文件进行修改提交到本地库。

2.2、合并分支

第一、先切换到需要合并的分支,例如在branch_01上修改的东西,需要同步到master,则切换到master上

第二、执行合并:$ git merge [有新内容的分支]

3、冲突解决

3.1、第一,修改内容,两个分支同时修改了444444这一行的内容。需要修改保存

3.2、第二、$ git add [文件名]

3.3、第三、提交:$ git commit -m "日志信息"

此时 commit 一定不能带具体文件名

3.4、第四、回到分支branch_01继续合并。

转载地址:http://ivlci.baihongyu.com/

你可能感兴趣的文章
iOS app之间的跳转以及传参数
查看>>
iOS __block和__weak的区别
查看>>
Android(三)数据存储之XML解析技术
查看>>
Spring JTA应用之JOTM配置
查看>>
spring JdbcTemplate 的若干问题
查看>>
Servlet和JSP的线程安全问题
查看>>
GBK编码下jQuery Ajax中文乱码终极暴力解决方案
查看>>
Oracle 物化视图
查看>>
PHP那点小事--三元运算符
查看>>
解决国内NPM安装依赖速度慢问题
查看>>
Brackets安装及常用插件安装
查看>>
Centos 7(Linux)环境下安装PHP(编译添加)相应动态扩展模块so(以openssl.so为例)
查看>>
fastcgi_param 详解
查看>>
Nginx配置文件(nginx.conf)配置详解
查看>>
标记一下
查看>>
IP报文格式学习笔记
查看>>
autohotkey快捷键显示隐藏文件和文件扩展名
查看>>
Linux中的进程
查看>>
学习python(1)——环境与常识
查看>>
学习设计模式(3)——单例模式和类的成员函数中的静态变量的作用域
查看>>