zoukankan      html  css  js  c++  java
  • Git备忘

    git 软件版本控制系统

    Git --- The stupid content tracker

    配置Git所需环境

    • windows下的git

    • 初始化git :

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

    git基础

    1. 选择一个合适的地方,创建一个空目录如mkdir /home/jiahu/Git。这个文件夹被称为工作区。
    2. cd进这个文件夹,通过git init命令把这个目录变成Git可以管理的仓库 ,你可以发现当前目录下多了一个.git的目录。不可随便删除.git目录,这个目录被称为版本库,其中将保存Git目录中所有提交的版本信息。
    3. 使用Git对一个文件实现版本控制需要两步:
      1. 用命令git add告诉Git,把文件添加到暂存区:
    git add filename          #将指定文件保存至缓存区
    git add -A                #将当前文件夹下的所有文件保存到暂存区。
    git add -u                #将本地已经被跟踪且被修改的文件保存到暂存区。
    
    2. 用命令git commit告诉Git,把文件提交到仓库: 
    
    git commit -m "wrote a readme file"     #将文件保存到库中。存在 -m 和其后面的描述是为了标记操作,便于以后纠错。
    
    1. git status命令可以让我们时刻掌握仓库当前的状态。
    2. 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
    3. git log命令显示从最近到最远的提交日志。如果嫌输出信息太多,可以试试加上--pretty=oneline参数。输出的一串数字是版本号,可以截取这串数字的一部分来代表某一个版本。
    4. 我们要把当前版本回退到上一个版本,就可以使用git reset命令:git reset --hard HEAD^HEAD相当于一个指针,其指向当前的版本,HEAD^表示前一个版本,HEAD^^表示前两个版本...HEAD~100表示前第100个版本。
    5. 使用指令git reflog可以看见未来的版本号,如果你返回到了一个过去的版本,但现在想回到未来的版本,这个指令就可以找到未来的版本。
    6. git与其他版本库的一个不同之处就是git存在暂存区的概念,只有同时使用git add *** 和git commit -m *** 才会将更改保存到版本库中。使用git add ***将文件保存在暂存区,再使用git commit -m *** 将文件提交至版本库。
    7. 撤销修改git checkout --filename 将文件回到到最近一次的git commit或git add 的状态。如果暂存区有文件就从暂存区恢复文件,如果暂存区没有文件就从版本库中恢复文件。git reset HEAD filename 会将暂存区的文件删除。git checkout --filename 相当于使用版本库或暂存区的文件替换工作区的指定文件。
    8. 如果想将版本库中的文件索引删除而不更改工作区间的文件,可以使用指令git rm。

    远程库:

    • 创建ssh key :ssh-keygen -t rsa -C "email@email"。一般而言与.git相同的文件下需要有.ssh文件夹,这样可以不用每次都输入密码。你可以创建多个sshkey,但公钥都必须上传到你的github上。一般在windows下生成的key会保存在用户的根目录下。判断sshkey是否可用 ssh -T git@github.com
    • 在gitgub下创建一个版本库。
    • 为远程版本库取个别名:git remote add origin git@github.com:yourgithubname/yourrepository.git在这里,origin是你远程库的别名,当然可以是其他的名字。
    • 将本地的库推送到远程:git push -u origin master ,origin是你远程版本库的别名,在推送一个全新的库时,一般要加上参数 -u 这样可以使远程的库与新库进行关联,当推送一个旧库时可以不加参数-u。
    • 从云端克隆文件:git clone git@github.com:yourgithubname/repository.git
    • 从云端更新本地库:git pull
    • 将本地文件推送到云端:git push [branch]

    git分支

    • 分支的作用:

    如你想测试一个想法但不想改变当前的代码,这时用一个分支会比直接在主分支上进行更改更容易理解与记忆。当多个人合作一个项目时,分支的存在是十分重要的。例如你更改一部分代码需要很长时间,但你又必须将代码推进远程库,这时你可以建立一个你自己的分支,这样你可以在自己的分支上对代码进行更改而不会影响到其他人。主分支应该是稳定的,而对代码进行更改时可以考虑在分支上进行,等分支稳定之后再将分支合并到主分支。

    • git可以创建不同的分支,而主分支被称为master。在没有分支的情况下,HEAD指向主分支master,master会随着commit的重复而变长,每一个节点代表一个commit版本。
    • 创建分支的指令:git branch newbranch这样可以创建出一个新的分支newbranch。
    • 切换分支:git checkout newbranch 注意与git checkout --filemane 的区别,切换到分支newbranch上工作。余后的工作不会更改主分支master中的内容。上面这两条指令可以合并:git checkout -b newbranch。
    • 查看不同的分支:git branch,当前工作的分支前会有一个星号。
    • 分支的合并:git merge newbranch ,将newbranch合并到当前的分支之上。一般在这之前要将工作的分支切换到主分支之上:git checkout master。随后可以删除无用的分支:git branch -d newbranch,那么现在就只剩下主分支master了。分支之间会存在冲突,一般而言在多人的项目中这种情况出现的概率更大,在这里不做更多的介绍。

    关于Git的其他内容

    • 使git忽略特定的文件和文件夹:编辑文件 .git/info/exculde, 按照要求在其中添加不想提交的文件类型和文件夹的名字。
    • Git中每一个版本节点都是所有跟踪文件的一个快照,类似于当前所有文件的一个备份,只不过对于那些相对于上一版而言没有变化的文档,Git会使用一个指针直接指向上一节点中对应的文件。
  • 相关阅读:
    HIVE高级(14):优化(14) Hive On Spark配置
    HIVE高级(13):优化(13) Hive Job 优化
    HIVE高级(12):优化(12) 数据倾斜
    HIVE高级(11):优化(11) HQL 语法优化(2) 多表优化
    HIVE高级(10):优化(10) HQL 语法优化(1) 单表优化
    HIVE高级(9):优化(9) Hive 建表优化(1) 分区表/分桶表/合适的文件格式/合适的压缩格式
    HIVE高级(8):优化(8) Explain 查看执行计划(二)
    Hive基础(19):Hive 函数(2) 自定义函数/自定义 UDF 函数/自定义 UDTF 函数
    Hive基础(18):Hive语法(5) DDL(2) 分区表和分桶表
    MATLAB RGB2HSV、HSV2RGB
  • 原文地址:https://www.cnblogs.com/jiahu-Blog/p/5592115.html
Copyright © 2011-2022 走看看