Git 命令练习

git的删除,添加,修改与日志

which vi 查看命令的目录

⌃ a 光标去开头

⌃ E 光标去结尾

ehco 'hellow world asd' > test.txt 修改内容, 重定向到文件中。等于修改了文件。

删除-恢复操作

rm

git rm

使用 rm 和 git rm 的区别。

git rm : 1. 删除了一个文件 2. 将被删除的文件纳入到暂存区.

若想恢复被删除的文件,需要进行两步操作。

a. git rest HEAD test2.txt 将待删除的文件从暂存区恢复到工作区

b. git checkout -- test2.txt 将工作区中的修改丢弃掉

rm : 将文件删除,这时,被删除的问价并未被纳入到暂存区

重命名操作

git mv oldname newname 重命名

mv oldname newname 重命名

git mv 和 mv 的却别 相当于 rm 和 git rm 的区别。

修改commit注释

git commit --amend -m '修改commit注释' ; 把上次提交的commit记录给修改了

git log -n ;查看最近几条的日志

查看帮助文档

git help log ; git log --help ; man git log

.gitignore 与 分支

.gitignore的作用:过滤不需要上传的文件。

  • *.a #忽略掉所有.a结尾的文件
  • !lib.a # 但lib.a除外
  • /TODO #仅仅忽略项目根目录下的TODO文件,不包括subdir/TODO
  • build/ # 忽略build/目录下的所有文件
  • doc/*.txt # 忽略doc/a.txt 但不包括 doc/b/a.txt
  • /**/test.txt 忽略所有的test.txt

-- 2020年01月18日18:16:58

rm -rf file 删除一个文件 或者一个文件包

echo 'hello world ' > test.txt 创建一个文件

分支的重要操作:

分支的本质到底是什么?

分支,一个commit 对象链,一条工作记录线。

HEAD指向的是当前的分支

master指向提交

合并之后 是一个快照 Fast - forward

git branch : 查看分支

git branch new_branch : 创建一个分支

git checkout - : 切换到上一个分支

git checkout master : 切换到master分支

git branch -d erwa : 删除erwa 分支 。 不能删除当前分支;不能删除未合并的分支。 要删的话 需要 -D

git branch -D erwa: 不管分支合并了没,直接删除

git checkout -b erwa4 : 创建,并切换到erwa4分支

git merge erwa4: 将erwa4分支合并到当前分支

git branch -v : 显示分支最近的修改信息

git log --graph : 查看图形化的日志

git commit -am '第三次提交' : 修改之后 add 并且 commit

冲突时手动解决冲突

分支进阶与版本回退

分支进阶

fast-forward :

如果可能的话,合并分支时,Git会使用fast-forward模式

在这种模式下,删除分支时,会丢掉分支信息

合并时加上--no -ff 参数,会禁用fast-forward快照模式。这样会多出来一个commit ID

如 : git merge --no -ff dev

查看图形化的日志 git log -graph

版本回退

git reset --hard HEAD^ : 回退一个版本

git reset --hard HEAD^^ : 回退两个版本

git reset --hard HEAD~2 : 回退第二个提交

git reset --hard commit_id : 回退到某个commit_id


回到最新的提交怎么办呢?

git reflog 查看操作日志。 然后再回退

checkout进阶与stash操作

checkout进阶

vi操作:
1.跳到文本的最后一行:按“G”,即“shift+g”
2.跳到最后一行的最后一个字符 : 先重复1的操作即按“G”,之后按“$”键,即“shift+4”。
3.跳到第一行的第一个字符:先按两次“g”,
4.跳转到当前行的第一个字符:在当前行按“0”。

git reset HEAD test.txt : 将添加到暂存区的内容从暂存区移除到工作区

git checkout -- ... : 丢弃当前的工作空间当对于暂存取当中的最后一次的修改。

git checkout master : 切换到master分支

git checkout -b test : 创建,并切换到test分支

git checkout 986d4a30a : 切换到当前分支的 某个log之前的状态。 游离状态

git branch -m test dev : 将test分支 名字修改成 dev

stash操作

适用场景,在当前分支开发,需要切换到其余分支。保存当前分支的现场。恢复现场等

git stash : 保存现场

git stash list : 查看保存现场

git stash apply :恢复现场( stash内容不删除,需要通过git satsh drop stash@{0} 手动删除)

git stash apply stash@{0}:恢复某个现场

git stash pop : 恢复现场(恢复的同时也将stash内容删除)

标签与diff

标签

标签的基本使用和作用

作用: 发布系统,或者到了一个历程碑时,给当前项目打一个版本标签

标签有两种: 轻量级标签与带有附注的标签

git tag v1.0 : 创建一个轻量级标签

git tag -a v1.1 -m '注释' : 创建一个带有附注的标签

git tag :查看当前分支的标签

git tag -l '1.0' : 根据条件查找当前的分支

git tag -d v1.0 : 删除标签

diff

diff 两个文件之间的差异性比较

git blame test.txt : 查看此文件的修改不同

diff a b : 比较a b 两个文件的不同 -- Unix自带的diff的使用

diff -u a b : 更清楚的比较 a b

git diff : 比较 暂存区 和工作区的区别 ; 暂存区作为原始文件。 工作区作为目标文件。

git diff HEAD : 比较工作区与最新提交的差别

git diff commit_id : 比较工作区与commit_id 那次的差别

git diff --cached : 比较的是最新的提交与暂存区之间的差别

远程与GitHub

git config --list : 查看当前git的配置

推送远程版本库:

git remote add origin https://github.com/584tiegan/gitlecture.git
git push -u origin master

Git远程操作

git remote show : 查看当前代码关联的远程仓库

git remote show origin : 查看远程仓库的信息

  1. Gitflow 建议和参考。
  2. 基于Git分支的开发模型:
    • master -- 生产发布分支。变化非常不频繁的分支。
    • hotfix -- 热修分支。用于紧急修复的分支。
    • test -- 测试分支。 供测试和产品等人员使用的分支,变化不是特别频繁。
    • develop -- 开发分支,频繁变化的一个分支。
    • feature -- 开发者分支。针对于单个的功能点。

使用SSH方式clone代码和push pull

先获取本地SSH

➜ ~ cd .ssh
➜  .ssh ls
known_hosts
➜  .ssh ssh-keygen -t rsa
➜ .ssh cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/SmZ8VvFLJIRurSXRaCsSeOgGN0bqKFt/3Qdk6MVqywHJEoYXlKdy4/NM/eMcgnNdpDnQkB5TbUyTppbVeMfuKz4RBH3bCw9oL44ZGm0bXB6hJU1kpnMMpSVriN+Ssv8GqBO/Vd4oK5vEywQV2e/cAvkqtC6Vb5Duf84Ho9n/U1IlcQVmbWw02TMzkzDwZqDbDoVWQBJ4sFRjq6lOFfZGFRtfXrBPnTkCibDlAjg0s0j7/FOcQupy4r4fbkXr+D4925ummuXD+E0F5+HIUWqddFhWgfMcs5T+JY+vh8D0Gbm7Q4g8A1DfAOwIWqFlBiFErQtgqNOGy14rv9g5IP2Z erwa@erwa.local

之后再GitHub里配置一下SSH 就可以了

Git协作

Git协作的基本过程介绍:

A人员push到远程仓库,B人员pull到本地仓库。AB进行了同步,可以进行同时开发。

push代码前,要先pull代码。

AB人员都有本地的版本库。也有一个公共的远程版本库。

一个本地库可以对应多个远程仓库。

git remote show : 查看远程仓库的信息

git remote show origin : 查看某个具体的远程仓库的信息。

➜ mygit git:(master) git remote show origin
Warning: Permanently added the RSA host key for IP address '140.82.114.3' to the list of known hosts.

  • remote origin
    Fetch URL: git@github.com:584tiegan/gitlecture.git
    Push URL: git@github.com:584tiegan/gitlecture.git
    HEAD branch: master
    Remote branch:
    master tracked
    Local branch configured for 'git pull':
    master merges with remote master
    Local ref configured for 'git push':
    master pushes to master (up to date)

git branch -a : 查看本地所有的分支,包括远程分支

2020年01月18日22:58:24 持续学习中。。。

你还不会Git?那就不要写代码了(二)的更多相关文章

  1. Git时间(第一次写,这个怎么玩啊)

    1.安装 Liunx直接打开shell界面,输入:sudo apt-get install git-core ,按下回车之后输入密码即可完成安装: Windows系统在https://git-for- ...

  2. 使用GIt向github上传代码

    github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开.这对于一般人来说公共仓库就已经足够了. 1.注册账户以及创建仓库     要想 ...

  3. 代码管理工具:使用github和git工具管理自己的代码

    一.git工具和账户创建 1.1 安装 Git 是 Linus Torvalds 最近实现的源代码管理软件."Git 是一个快速.可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系 ...

  4. 学习git 新手。这个写的不错

    转自:https://www.cnblogs.com/wupeiqi/p/7295372.html 版本控制 说到版本控制,脑海里总会浮现大学毕业是写毕业论文的场景,你电脑上的毕业论文一定出现过这番景 ...

  5. git +maven+java+jenkins自动化代码持续集成

    1.安装JDK JDK下载: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 新 ...

  6. git学习------>从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?

    最近逐步逐步的将公司的项目都从SVN往Git迁移了,但是想团队成员都能够一步到位就迁移到Git是不可能的,因为还有大部分人都还不会Git,所以整个过渡过程估计得大半年. 因此导致虽然项目迁移过来了,但 ...

  7. 项目管理---git----快速使用git笔记(五)------本地项目代码提交到远程仓库---新建项目

    上一篇我们已经知道了怎么从远程仓库获取项目文件代码. 项目管理---git----快速使用git笔记(四)------远程项目代码的首次获取 git还有一种使用场景是 我本来在电脑里就有一个项目,现在 ...

  8. Git 深度学习填坑之旅二(文件三种状态、打标签)

    0x01 三种状态 Git 有三种状态,你的文件可能处于其中之一: 已提交(committed).已修改(modified)和已暂存(staged). 已提交表示数据已经安全的保存在本地数据库中. 已 ...

  9. Git利用命令行提交代码步骤

    利用命令行提交代码步骤进入你的项目目录1:拉取服务器代码,避免覆盖他人代码git pull2:查看当前项目中有哪些文件被修改过git status具体状态如下:1:Untracked: 未跟踪,一般为 ...

  10. 【Git】4、创建代码仓库,HTTP、SSH拉取远端代码

    拉取远端代码:使用Git命令下载远程仓库到本地 文章目录 拉取远端代码:使用Git命令下载远程仓库到本地 1.创建远程代码仓库 2.创建仓库 3.进入仓库 4.HTTP(S)获取远程仓库 首次拉取 更 ...

随机推荐

  1. 【9101】求n!的值

    Time Limit: 10 second Memory Limit: 2 MB 问题描述 用高精度的方法,求n!的精确值(n的值以一般整数输入). Input 文件输入仅一行,输入n. Output ...

  2. POJ - 3415 Common Substrings (后缀数组)

    A substring of a string T is defined as: T( i, k)= TiTi +1... Ti+k -1, 1≤ i≤ i+k-1≤| T|. Given two s ...

  3. linux包之下载curl-wget

    [root@localhost ~]# rpm -qa|grep curllibcurl-7.19.7-37.el6_4.x86_64python-pycurl-7.19.0-8.el6.x86_64 ...

  4. Lede定时重拨

    系统,计划任务,   0 4 * * * ifup wan 梅林定时重拨: #! /bin/sh #断开拨号连接 killall pppd #延时10秒 #重新拨号 pppd >& &a ...

  5. Hibernate各种查询方式及查询策略(转)

    转自:https://www.cnblogs.com/xujingyang/p/6734203.html 在了解Hibernate的基本知识后,重点让我们看下相关查询方式和查询优化策略吧! 话不多说, ...

  6. 彻底搞懂HTML5文件上传操作需要的相关资料

    https://developer.mozilla.org/zh-CN/docs/Web/GuideMDN Web Guide https://developer.mozilla.org/zh-CN/ ...

  7. vue新增属性响应式更新的问题

    根据官方文档定义: 如果在实例创建之后添加新的属性到实例上,它不会触发视图更新. 受现代 JavaScript 的限制 (以及废弃 Object.observe),Vue 不能检测到对象属性的添加或删 ...

  8. 解读中兴通信在物联网行业如何践行DDD

    此前,在由 ThoughtWorks 举办的领域驱动设计峰会 DDD-China 2019 上,InfoQ 记者就开发团队为何需要 DDD.目前业界实践 DDD 的挑战等问题对中兴通讯资深软件架构师张 ...

  9. Visio高级应用部件

    标注与公式的应用: 插入标注 怎么让标注与图形建立关联:拖动标注的时候坐下角会出现黄色的点 把标准拖动到形状边的时候让黄点进入形状就是建立了关联 然后标注就会随着形状的移动而移动 而且复制和删除也都是 ...

  10. no supported authentication methods avaiable

    在git(小乌龟)向github远程推送(push)文件是会报一个异常 no supported authentication methods avaiable 解决方法:因为git(小乌龟)和Git ...