▶ 注意

页面显示问题:

-- 是两个短横线
- 是一个横短线

由于显示问题导致两个短横线之间没有空格,看起来像是一条横线,实则是两条短横线

▶ git 常用命令

◆ git add

● git add .

功能:添加当前目录以及子目录下被修改、新建的文件

● git add -u

功能:-u=--update,update tracked files,添加当前目录以及子目录下被修改的文件

● git add -A

功能:-A=--all,添加所有目录下已被修改和已被删除文件

◆ git remote

● git remote set-url origin <new_url>

功能:重定向远程仓库地址

◆ git reset

◇ 重置到过去某次提交

● git reset –soft <commit>

功能:重置 HEAD 和 branch 的同时,保留索引区和工作树里比 commit 更加新的内容,相当于回到 git add 执行后的状态。

● git reset [–mixed] <commit>

功能:重置 HEAD 和 branch 的同时,清空索引区里比 commit 更加新的内容,保留工作树里比 commit 更加新的内容。

● git reset –hard <commit>

功能:重置 HEAD 和 branch 的同时,清空索引区和工作树里比 commit 更加新的内容。

总结:

注意:

本地回退到以前的版本后,然后 git push 可能会报错,因为本地版本比远程版本旧,此时可用 git push -f 强制推送到远程仓库

◇ 删除已添加到索引的文件
git reset HEAD    #删除已添加到索引的全部文件
git reset HEAD -- <file>    #删除已添加到索引的某个文件

◆ git checkout

● git checkout <branch>

功能:切换分支

● git checkout – <files>

功能:还原正在手头上修改,还没被添加到索引里的文件

◆ git config

● git config --global user.name "<user_name>"
git config --global user.email "<email>"

功能:配置用户名和密码

● 设定命令的别名

git config --global alias.<alias_name> <command_name>

◆ git branch

● git branch

功能:查看本地分支

● git branch -r

功能:查看远程分支

● git branch -a

功能:查看远程和本地分支

● git branch -d <branch_name>

功能:删除指定分支

◆ git log

● git log [–graph] [–oneline] [--author="<author_name>"]

功能:查看提交记录。指定 --graph 选项能以文本形式显示更新记录的流程图;指定 --oneline 选项,能在一行中显示提交的信息;指定 --author=“<author_name>” 可以只看某个作者的提交,作者名不一定是全匹配,只要包含那个子串就会匹配,使用 git log --author="<author_name1>\|<author_name2>" 可以搜索包含「作者1」或「作者2」的提交信息。

● git log <file_name>

功能:只看 file_name 的历史提交记录

● git log -p <file_name>

功能:只看 file_name 的历史提交记录,并且显示每次文件变化的地方

● git log --grep <key_words>

功能:搜索提交历史记录,不支持多个关键词的「与或非」语法

● git log –oneline | grep <Linux grep 命令语法>

功能:通过管道模式,使用 Linux grep 命令搜索提交历史记录,支持的语法更多

◆ git show

● git show <commit> <file>

功能:查看某个版本的某个文件变化的内容

● git show <commit>:<file>

功能:查看某个版本的某个文件的内容

◆ git merge

● git merge <branch_name>

功能:将 branch_name 分支合并到当前所在的分支。如果合并的时候发生冲突,修改冲突部分,然后执行 git add <conflict_file>; git commit -m "<提交说明>"

详细操作步骤参看:用 merge 合并 并解决合并的冲突 -> 猴子都能懂的GIT入门

◆ git rebase

● git rebase <branch_name>

功能:将当前所在的分支合并(rebase 方式)branch_name 分支,注意和 git merge <branch_name> 区分。如果合并的时候发生冲突,修改冲突后的提交不是使用 commit 命令,而是执行 rebase 命令指定 --continue 选项,若要取消 rebase,指定 --abort 选项。

git add <conflict_file>
git rebase --continue

详细操作步骤参看:用 rebase 合并 -> 猴子都能懂的GIT入门

◆ git diff

● git diff [– <file_path>]

功能:查看工作树与索引区的差异;指定 -- <file_path> 可以仅查看某个文件的差异

● git diff –cached [– <file_path>]

功能:查看索引区与 HEAD 的差异;指定 -- <file_path> 可以仅查看某个文件的差异

● git diff <commit> [– <file_path>]

功能:查看工作树与 HEAD 的差异;指定 -- <file_path> 可以仅查看某个文件的差异

▶ 常见问题

◆ 查看某个版本的某个文件的内容

查看某个版本的某个文件的内容:

git show <commit>:<file>

查看某个版本的某个文件变化的内容:

git show <commit> <file>

注意:

加与不加「分号」是不一样的

◆ 修改最近的一次提交

git commit –-amend

功能:指定 amend 选项执行提交的话,可以修改同一个分支最近的提交内容和注解。

主要使用的场合:

  • 添加最近提交时漏掉的档案
  • 修改最近提交的注解

只修改注释:

git commit --amend

在弹出的提交记录中修改提交注释

添加文件并修改注释:

git add <file>
git commit --amend

在弹出的提交记录中修改提交注释

◆ 修改过去的提交

git rebase -i <commit>

在弹出的提交记录中把想要更改提交的 pick 改成 edit,然后保存并退出,此时修改过的提交呈现退出状态,屏幕上将会显示后续操作步骤指南。编辑需要更改的文件,然后执行:

git add <file>
git commit --amend
git rebase --continue

详细操作步骤参看:用rebase -i 修改提交

◆ 回滚过去的提交

git revert <commit>    #回滚某次提交
git revert <commit1>..<commit2>    #回滚区间 (commit1, commit2] 的提交,左开右闭

注意:

  • 注意 revert 命令会对每个撤销的 commit 进行一次提交,指定 --no-commit 后可以最后一起手动提交
  • 回滚之后用 git push 可能会报错,此时可用 git push -f 强制推送到远程仓库

相比操作步骤参看:git revert 的操作 -> 简书

◆ 重置到过去某次提交

参看 git 常用命令 > git reset > 重置到过去某次提交

◆ 忽略文件

在「.git」文件夹同层建立一个 「.gitignore」文件,添加需要忽略的文件

▶ 重要概念

◆ branch

◇ 使用场景
  • 在开发软件时,可能有多人同时为同一个软件开发功能或修复BUG,可能存在多个Release版本,并且需要对各个版本进行维护。
  • 分支是为了将修改记录的整体流程分叉保存。分叉后的分支不受其他分支的影响,所以在同一个数据库里可以同时进行多个修改。
◇ Merge 和 Topic 分支
  • Merge分支是为了可以随时发布release而创建的分支,它还能作为Topic分支的源分支使用。保持分支稳定的状态是很重要的。如果要进行更改,通常先创建Topic分支,开发完成后合并到Merge分支。
  • Topic分支是为了开发新功能或修复Bug等任务而建立的分支。若要同时进行多个的任务,请创建多个的Topic分支。
  • Topic分支是从稳定的Merge分支创建的。完成作业后,要把Topic分支合并回Merge分支。

◆ HEAD

HEAD指向的是现在使用中的分支的最后一次更新。通常默认指向master分支的最后一次更新。通过移动HEAD,就可以变更使用的分支。

◆ stash

还未提交的修改内容以及新添加的文件,留在索引区域或工作树的情况下切换到其他的分支时,修改内容会从原来的分支移动到目标分支。

但是如果在checkout的目标分支中相同的文件也有修改,checkout会失败的。这时要么先提交修改内容,要么用stash暂时保存修改内容后再checkout。

stash是临时保存文件修改内容的区域。stash可以暂时保存工作树和索引里还没提交的修改内容,您可以事后再取出暂存的修改,应用到原先的分支或其他的分支上。

▶ 其它问题

◆ git 设置代理


未完 ......

点击访问原文(进入后根据右侧标签,快速定位到本文)

开始使用 git(配置+常用命令)的更多相关文章

  1. Git 基础 —— 常用命令

    Git 基础学习系列 Git 基础 -- 安装 配置 别名 对象 Git 基础 -- 常用命令 Git 基础 -- 常见使用场景 Git基础 -- Github 的使用 git init 创建 Git ...

  2. Git系列:常用命令

    一.背景 作为一名程序员,怎么能不懂Git那些常用命令呢?于是花费一点时间来总结Git命令.关于安装的话,就不讲了. 二.常用命令 1.配置全局的用户名称和用户邮箱 git config --glob ...

  3. GIT 版本控制常用命令学习汇总

    GIT 版本控制常用命令汇总 git version 查看当前git版本信息 git help 获取全部命令帮助信息 git help <command> 获取指定命令帮助信息 git c ...

  4. git log 常用命令及技巧

    git log常用命令以及技巧 1.git log 如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者.提交日期.和提交说明.如果记录过多,则按Page Up.Pag ...

  5. Git基本常用命令

    Git基本常用命令如下: mkdir: XX (创建一个空目录 XX指目录名) pwd: 显示当前目录的路径. git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件. git ...

  6. Git是什么、Git的功能、为什么versioncontrol用Git、Git的常用命令、Git的优缺点

    Git是什么 git是目前世界上最先进的分布式版本控制系统(没有之一). Git是用于 Linux内核开发的版本控制工具.与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版 ...

  7. Git stash 常用命令

    参考: Git: How to look at the stash Git学习笔记05--git stash Git stash 常用命令 1.git stash: 保存当前的工作进度: 2.git ...

  8. git之常用命令

    git之常用命令 1.下载远程仓库最新代码 $ git pull --rebase origin master 2.上传代码 $ git push origin master 3.退出编辑 ESC + ...

  9. git的常用命令。。

    git的常用命令.. git help <command>  显示command的help git show  显示某次提交的内容 git show $id git co -- <f ...

  10. Git - Git基本常用命令

    Git基本常用命令 mkdir:         XX (创建一个空目录 XX指目录名) pwd:          显示当前目录的路径. git init          把当前的目录变成可以管理 ...

随机推荐

  1. nmon服务器性能结果报告分析

    一.nmon命令 ./nmon_x86_64_centos7 -f -s 10 -c 60 -m ./log/  命令的含义是: -f :按标准格式输出文件名称:<hostname>_YY ...

  2. Web API 跨域

    1. NuGet下载## microsoft.aspnet.webapi.cors 2 . Web API 路由中 config.EnableCors(new EnableCorsAttribute( ...

  3. dell如何安装Win10/Ubuntu双系统

    原文:https://www.cnblogs.com/askDing/p/10477345.html 测试环境: DELL PRECISION 7510: CPU:Intel Core i5-6300 ...

  4. 树莓派4硬件---GPIO篇

    树莓派拿到手已经两个多月了,其实从最开始的期待安装好ROS,到前几天完成了ROS的源码编译安装,对linux的调教也时花了些时间的.现在终于想起来,树莓派上还有GPIO,还没有用过了.说干就干,开始. ...

  5. PullToRefresh原理解析,pulltorefresh解析

    PullToRefresh原理解析,pulltorefresh解析 代码届有一句非常经典的话:"不要重复制造轮子",多少人看过之后便以此为本,把鲁迅的"拿来主义" ...

  6. 使用多个tomcat如何修改端口号

    一.找到tomcat下conf文件夹下server.xml: 二.修改8080端口 三.修改8009端口 四.修改8005端口 修改后同时启动多个tomcat成功.

  7. Linux系统中rm删除命令

    rm命令 1.可以删除一个目录中的一个或多个文件或目录 2.可以将某个目录及其下属的所有文件及其子目录均删除掉 3.对于链接文件,只是删除整个链接文件,而原有文件保持不变 语法 rm (选项)(参数) ...

  8. 从Cortex-M3的MSP 和PSP谈Linux能否在中断中使用Sleep

    1.Cortex-M3 的PSP和MSP 曾经在STM32上使用过RT thread和uC/OS,对于任务切换代码一直是一知半解,没有自己手动写出来过,对于任务切换后的ORR   LR, LR, #0 ...

  9. linux redis 设置密码:

    在服务器上,这里以linux服务器为例,为redis配置密码. 1.第一种方式 (当前这种linux配置redis密码的方法是一种临时的,如果redis重启之后密码就会失效,) (1)首先进入redi ...

  10. 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_10-课程详情页面静态化-课程详情模型数据查询接口

    根据课程详情页面写一个获取数据模型的接口 目录的数据来自于课程计划表 右侧是课程的图片 需要写一个接口 获取课程相关的所有信息. 所以就需要一个模型类,里面包含了基本信息.图片信息.等各种详情页面的信 ...