首页 > 其他分享 >Git学习笔记

Git学习笔记

时间:2023-02-28 20:23:52浏览次数:37  
标签:git -- dev 学习 修改 Git 笔记 checkout 分支

  1. 新建文件夹mkdir
  2. 进入文件夹cd
  3. 显示当前目录pwd
  4. 修改文件vi
  • Esc 退出输入状态
  • shift + ; + q! 不保存文件的写入修改
  • shift + ; + wq!是保存文件的写入修改
  1. 查看上一次对某一文件的修改git diff

  2. 命令显示从最近到最远的提交日志git log
    使用git log--pretty=oneline可以更加清晰得看出每次的commit(快照),一大串类似1094adb...的是commit id(版本号)

  3. 查看文件cat

  4. 命令

    git checkout -- readme.txt
    

    意思就是,把readme.txt文件在工作区的修改全部撤销,git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

  5. 用命令git reset HEAD可以把暂存区的修改撤销掉(unstage),重新放回工作区

  6. git reset --hard HEAD可以回退到上一个版本,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100

  7. 如果想撤销回退的操作,git reset —hard

  8. Git提供了一个命令git reflog用来记录你的每一次命令,可以查看每一次的commit id

  9. git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本的区别

  10. 在文件管理器中把没用的文件删了,或者用rm命令删了,确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit

  11. 命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

  12. 可以很轻松地把误删的文件恢复到最新版本:git checkout -- test.txt

  13. 在本地的learngit仓库下运行命令:$ git remote add origin [email protected]:linhongyu0090/learngit.git。添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。下一步,就可以把本地库的所有内容推送到远程库上:$ git push -u origin master

  14. 只要本地作了提交,就可以通过命令:$ git push origin master把本地master分支的最新修改推送至GitHub

  15. 如果添加的时候地址写错了,或者就是想删除远程库,可以用git remote rm 命令。使用前,建议先用git remote -v查看远程库信息:
    $ git remote -v
    origin [email protected]:linhongyu0090/learn-git.git (fetch)
    origin [email protected]:linhongyu0090/learn-git.git (push)
    然后,根据名字删除,比如删除origin:
    $ git remote rm origin
    此处的“删除”其实是解除了本地和远程的绑定关系,并不是物理上删除了远程库。远程库本身并没有任何改动。要真正删除远程库,需要登录到GitHub,在后台页面找到删除按钮再删除。

  16. 远程库已经准备好了,下一步是用命令git clone克隆一个本地库:
    $ git clone [email protected]:linhongyu0090/gitskills.git
    注意把Git库的地址换成你自己的,然后进入gitskills目录看看,已经有README.md文件了:
    $ cd gitskills
    $ ls
    README.md
    用https://github.com/michaelliao/gitskills.git这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议

  17. 首先,我们创建dev分支,然后切换到dev分支:
    $ git checkout -b dev
    git branch命令会列出所有分支,当前分支前面会标一个*号。
    然后,我们就可以在dev分支上正常提交,比如对readme.txt做个修改
    现在,dev分支的工作完成,我们就可以切换回master分支:
    $ git checkout master
    现在,我们把dev分支的工作成果合并到master分支上:
    $ git merge dev
    合并完成后,就可以放心地删除dev分支了:
    $ git branch -d dev
    switch
    我们注意到切换分支使用git checkout ,而前面讲过的撤销修改则是git checkout -- ,同一个命令,有两种作用,确实有点令人迷惑。
    实际上,切换分支这个动作,用switch更科学。因此,最新版本的Git提供了新的git switch命令来切换分支:
    创建并切换到新的dev分支,可以使用:
    $ git switch -c dev
    直接切换到已有的master分支,可以使用:
    $ git switch master

  18. 测试流程=> 修改文件 git add 修改文件 git commit 最终提交的是第一次修改 而不是文件最终的样子 
    证明:提交的是修改而不是文件
    所以确保在commie 前add所有文件
    命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
    一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
    一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
    总之,就是让这个文件回到最近一次git commit或git add时的状态。
    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
    场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了场景1,第二步按场景1操作。
    场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

  19. 进入虚拟环境存放目录:% cd ~/virtualEnvs
    查看所有的环境:% lsvirtualenv
    切换到指定的环境(比如env1):%workon env1
    在指定的环境下为所欲为

  • 比如pip install ...

  • 查看该环境的包% lssitepackages

  • 进入当前环境:% cdvirtualenv

  • 进入当前环境site-packages: $%cdsitepackages
    退出虚拟环境:% deactivate
    复制虚拟环境:% cpvirtualenv env1 env3 #把env1复制到env3,可不用事先创建env3
    删除环境: % rmvirtualenv env1

  1. 创建新的分支 git checkout -b dev
    相当于:git branch dev
    git checkout dev

  2. 列出所有分支 git branch

  3. 把dev分支的工作成果合并到master分支上 git merge dev

  4. 删除dev分支了git branch -d dev

  5. 切换到新的dev分支

    git switch -c dev
    
  6. 直接切换到已有的master分支,可以使用:

    $ git switch master
    
  7. git alias:

  • inhongyu@bogon learngit % git config --global alias.co checkout
  • linhongyu@bogon learngit % git config --global alias.ci commit
  • linhongyu@bogon learngit % git config --global alias.br branch
  • linhongyu@bogon learngit % git config --global alias.unstage 'reset HEAD'
  • linhongyu@bogon learngit % git config --global alias.last 'log -1'

标签:git,--,dev,学习,修改,Git,笔记,checkout,分支
From: https://www.cnblogs.com/linhongyu0090/p/17165846.html

相关文章

  • Git 提示fatal: remote origin already exists 错误解决办法
    Git提示fatal:remoteoriginalreadyexists错误解决办法先删除远程Git仓库$gitremotermorigin再添加远程Git仓库[email protected]:FB......
  • git 的基本指令
    ------------恢复内容开始------------ 2023年了,你会用git吗?让我这个只会使用小乌龟的也来普及(指手画脚)一下git基本使用。   代码写......
  • 毕业设计相关论文学习
    毕业设计相关论文及学习1.基于多元线性回归方法的疫情监测系统研究[1]夏婉玉.基于多元线性回归方法的疫情监测系统研究[D].武汉工程大学,2022.DOI:10.27727/d.cnki.gwh......
  • mac安装git
    mac一般都有安装gita、可以使用git命令查看是否安装gitb、whichgit命令可以查看git安装目录1、下载官网 2、安装mac直接点击安装无法识别时,可以【右击】,然后点......
  • 组合数学笔记-排列与组合
    目录排列与组合排列排列的定义与基本性质错位排列错位排列的定义与基本性质圆排列圆排列的定义与基本性质多重集排列多重集排列的定义与基本性质组合组合的定义与基本性质......
  • IaaS--云硬盘(何恺铎《深入浅出云计算》笔记整理)
     【概念】云硬盘,又叫做“云盘”或者“云磁盘”,就是云虚拟机上可以挂载和使用的硬盘。这里,它既包含了用于承载操作系统的系统盘,也包括了承载数据的数据盘。云厂商对于云......
  • react-native学习记录1(都是坑,各种版本问题,让人望而却步)
    1.环境搭建https://zhuanlan.zhihu.com/p/528196912?utm_id=02.创建项目npxreact-nativeinitsomeProject--version0.66.0npxreact-nativerun-android生命周期,路由,......
  • 学习笔记287—为什么要开发 Go 这门新语言?有什么优势?
    编程语言已经非常多,偏性能敏感的编译型语言有C、C++、Java、C#、Delphi和Objective-C等,偏快速业务开发的动态解析型语言有PHP、Python、Perl、Ruby、JavaScript和Lua等,面......
  • 组合数学笔记-计数原理
    目录计数原理基本计数原理加法原理(分类)乘法原理(分步)减法原理(正难则反)除法原理(等价划分)重要计数原理抽屉原理(鸽巢原理)容斥原理约定:本笔记涉及的一切变量,若未特殊指明,则默......
  • 对于如何在IDEA中给Terminal添加git的详解
    具体步骤1、配置本机环境变量进入到环境变量的设置界面,然后找到下面的Path变量,双击点开;然后新建一个变量,路径定义到git的目录下面的bin目录下;2、WIN+R,然后输入cmd,进入......