Git学习日记<一>

Git 从零开始

NO.1 安装之后的配置
    git config --global user.name "Your name"
    git config --global user.email "Your Email"

NO.2 创建版本库 初始化
    进入目标目录
    git init //初始化一个仓库
    
    添加文件分两步:
    git add <filename> //添加文件
    git commit         //提交

NO.3 仓库当前的状态
    git status
    
    查看文件修改的内容
    git diff <filename>
        workingTree  工作目录..git能知道工作目录里的所有改变
        index        add命令把workingtree 提交给index
        commit         最终提交给仓库
    git diff <filename> 查看工作目录和Index的区别
    git diff --cached <filename> 查看Index和commit的区别
    git diff HEAD <filename>  查看worktree和commit的区别
    
NO.4 查看提交的历史纪录 以决定回退到哪个版本
    git log
    git log --pretty=oneline //一行显示
    
    回退版本
    git reset --hard HEAD^ //上个版本
    git reset --hard HEAD^^ //上上个版本 以此类推
    git reset --hard HEAD~100 //往上100个版本
    
    git reset --hard <版本号> //回退到版本号
        
    git reflog 查看命令历史纪录 确定回到‘未来‘的哪个版本
    
NO.5 撤销修改
    ①当未add到暂存区时
        git checkout -- <filename> 撤销工作区修改 从版本库恢复
    ②当已经add到暂存区时
        git reset HEAD <filename> 从暂存区恢复 到工作区
        然后checkout
    ③当已经commit到版本库时
        回退版本
NO.6 删除文件
    git rm  从工作目录删除
    git commit 提交到版本库

撤销删除
        没有commit时:
        回退版本  git reset HEAD --HelloWorld.py
        git checkout -- HelloWorld.py
        
        已经commit:
        整个版本库回退 git reset -- hard HEAD^
NO.7远程仓库
    创建SSH key
        ssh-keygen -t rsa -C "[email protected]"
        
    用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件
    登陆GitHub,打开“Account settings”,“SSH Keys”页面,
    然后,点“Add SSH Key”,填上任意Title,
    在Key文本框里粘贴id_rsa.pub文件的内容
    
    要关联一个远程库,使用命令:
        git remote add origin [email protected]:path/repo-name.git;
    关联后,使用命令
        git push -u origin master
        第一次推送master分支的所有内容;
    此后,每次本地提交后,只要有必要,就可以使用命令
        git push origin master
        推送最新修改;
        
    从远程库克隆
        git clone [email protected]:<username>/<repo-name>.git
        
NO.8 分支管理

Git鼓励大量使用分支:

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

时间: 2024-10-25 05:34:13

Git学习日记<一>的相关文章

学习日记 | 5.18 [Python3] Python3基础与面向对象

注:这是一系列基于实验楼网络培训的python学习日记,内容零散,只是便于我自己回顾,有需要请了解www.shiyanlou.com. 1. Github相关 首先是复习github相关操作: 1.1 完成创建账号和仓库 登陆github.com,创建new repository,自动初始化README.md. 1.2 使用ssh-keygen生成公私钥 建议密钥保存在默认位置中:终端输入ssh-keygen,默认保存密钥位置为/home/shiyanlou/.ssh/id_rsa,一路回车.然

学习日记之状态模式和Effective C++

状态模式(State):当一个对象内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类. (1),状态模式主要负责解决的是当控制一个对象转换的条件表达式过于复杂时的情况.把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化. (2),状态模式的好处是将与特定状态相关的行为局部化,并且将不同状态的行为分割开来. (3),将特定的状态相关的行为都放入一个对象中,由于所有与状态相关的代码都存在于某个ConcreteState中,所以通过定义新的子类可以很容易地增加新的状态和

git 学习小记之记住https方式推送密码

昨天刚刚学了点git基础操作,但是不幸的是[email protected]给出公告说尽量使用 https 进行操作.可是在用 https 进行 push 时,都需要输入帐号和密码. 各种百度谷歌之后在[email protected]官网找到了解决方法<https方式使用[email protected]设置密码的方式>文中给出了几个方法,并且都非常简单. 关于 cache 缓存方式,我不太喜欢,因为要设置时间,而且会过期.而 store 相应的非常方便,设置全局后,方便多个库使用.当然如果

学习日记

五一耍了三天,自己的计划有泡汤,那种制止力哪里去了,不过我认真起来还有有废寝忘食的时候,不过希望这种时候多一点,回家妈妈告诉我,她给老师打电话了的,老师说了我的一些情况,不过我没有老师说的那么好,学习在班上算中等.我觉得还算不上吧!任重而道远吧. Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量

Git 学习笔记

Git 学习笔记 本文整理参考廖雪峰的 Git 教程, 整理 Git 学习笔记, 用于 Git 常用命令速查:常用命令用彩色标注! Git学习笔记 $ git config --global user.name "Your Name" 配置本机所有仓库的用户名 $ git config --global user.email "[email protected]" 配置本机所有仓库的Email地址 $ git init 初始化一个Git仓库 $ ls -ah 查看隐

Git学习 -- 自定义Git

忽略特殊文件 在工作区创建.gitignore文件,编写内容 # Windows: Thumbs.db ehthumbs.db Desktop.ini # Python: 忽略Python编译产生的.pyc..pyo.dist等文件或目录 *.py[cod] *.so *.egg *.egg-info dist build # My configurations: db.ini deploy_key_rsa 然后add和commit该文件 此后当工作区出现.gitignore中类型文件时,git

学习日记之解释器模式和Effective C++

解释器模式(interpreter):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. (1),如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言的句子.这样可以构建一个解释器,该解释器通过解释这些句子来解决该问题. (2),当一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象的语法树时,可使用解释器模式. (3),容易改变和扩展文法,因为该模式使用类来表示文法规则,你可以使用继承来改变和扩展该文法

学习日记之中介者模式和Effective C++

中介者模式(Mediator):用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互. (1),中介者模式很容易在系统中应用,也很容易在系统中误用.当系统出现多对多交互复杂的对象群时,不要急于使用中介者模式,而要反思你在系统的设计上是不是合理. (2),中介者的出现减少了各个对象的耦合,使得可以独立地改变和复用各个对象和中介者. (3),由于把对象如何协作进行了抽象,将中介者作为一个独立的概念并将其封装在一个对象中,这样关注

学习日记之职责链模式和Effective C++

职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这个对象连成一条链,并沿着该条链传递该请求,直到有一个对象处理它为止. (1),当客户提交一个请求时,请求时沿着链传递直到有一个 ConcreteHandler 对象负责处理它. (2),接收者和发送者都没有对方的明确信息,切链中的对象自己也不知道链的结构.结果是职责链可简化为对象之间的连接,它们仅需保留一个指向其后继者的引用.而不惜保留它所有的候选接收者的引用