• git基本操作


    git

    git


     

    1、版本回退

    HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。

    穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

    要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

     

    2、工作区和暂存区

    工作区(Working Directory):就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区 
    版本库(Repository):工作区有一个隐藏目录“.git”,这个不算工作区,而是Git的版本库。 
    Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD 
    第一步是用“git add”把文件添加进去,实际上就是把文件修改添加到暂存区; 
    第二步是用“git commit”提交更改,实际上就是把暂存区的所有内容提交到当前分支。

    因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,commit就是往master分支上提交更改。

    可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

     

    3、撤销修改

    命令:git checkout --file 
    git checkout --readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

    一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

    一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

    总之,就是让这个文件回到最近一次git commit或git add时的状态 
    命令 git reset HEAD file
    可以把暂存区的修改撤销掉(unstage),重新放回工作区: 
    命令git rm用于删除一个文件

     
    1. $ git rm test.txt

    恢复误删:

     
    1. $ git checkout -- test.txt
     

    4、远程仓库与本地仓库

    在本地安装git,并注册github账户,然后创建SSH Key,将pub下的可以添加到github页面中。

     
    1. $ ssh-keygen -t rsa -C "youremail@example.com"

    然后在github中新建一个仓库,可以将新建的这个远程仓库添加到本地库中,实现关联,实现如下:

     
    1. $ git remote add origin git@github.com:username/createNew.git

    然后就可以将本地库的内容推送到这个远程库中,推送代码:

     
    1. #第一次加了参数-u,以后可以省略
    2. $ git push -u origin master

    如果要推送其他分支,比如dev,就改成: 
    $ git push origin dev 
    从远程库克隆 
    把远程库克隆到本地: 指向远程库地址即可

     
    1. $ git clone git@github.com:michaelliao/gitskills.git
     

    5、分支管理

    查看分支:git branch

    创建分支:git branch name

    切换分支:git checkout name

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

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

    删除分支:git branch -d name 
    bug分支 
    修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除; 
    当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。

    查看远程库信息,使用git remote -v; 
    本地新建的分支如果不推送到远程,对其他人就是不可见的; 
    从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交; 
    在本地创建和远程分支对应的分支,使用

     
    1. git checkout -b branch-name origin/branch-name

    本地和远程分支的名称最好一致; 
    建立本地分支和远程分支的关联,使用

     
    1. git branch --set-upstream branch-name origin/branch-name

    从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

     

    6、标签

    命令git tag name用于新建一个标签,默认为HEAD,也可以指定一个commit id;

    -a tagname -m "blablabla..."可以指定标签信息;

    -s tagname -m "blablabla..."可以用PGP签名标签;

    命令git tag可以查看所有标签; 
    命令git push origin tagname可以推送一个本地标签;

    命令git push origin --tags可以推送全部未推送过的本地标签;

    命令git tag -d tagname可以删除一个本地标签;

    命令git push origin :refs/tags/tagname可以删除一个远程标签。

  • 相关阅读:
    深入探索迭代器(续)
    深入探索迭代器
    C++ 容器的综合应用的一个简单实例——文本查询程序
    multimap 和 multiset 类型
    set 类型
    map 类型
    关联容器
    Ajax请求成功, 但进不去success方法
    springboot指定配置文件启动项目
    新测可用IntelliJ IDEA 2020.1 for mac
  • 原文地址:https://www.cnblogs.com/lydialee/p/4026369.html
Copyright © 2020-2023  润新知