博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git基本操作
阅读量:7291 次
发布时间:2019-06-30

本文共 2270 字,大约阅读时间需要 7 分钟。

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可以删除一个远程标签。

转载于:https://www.cnblogs.com/lydialee/p/4026369.html

你可能感兴趣的文章
我的友情链接
查看>>
应用故障----之客户网站显示不全
查看>>
linux端口开放
查看>>
centos 7 系统中使用yum安装tomcat
查看>>
CentOS6.5下添加epel源和安装tomcat7
查看>>
伟大的DELPHI XE2 马上推出 将是一场技术革命
查看>>
Delphi 2010 新增功能之: TWICImage 类[2] - 图像的旋转变换
查看>>
RedHat系统使用本地镜像作为更新源
查看>>
eSpeak TTS (粤语) for Android 发布
查看>>
Linux 下挂载ntfs,fat32与挂载乱码的解决
查看>>
致那些年,我们一起被jenkins坑过的青春
查看>>
舅舅的决定
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
adt-bundle和android studio下载地址(不定期更新)
查看>>
RobotThread.cpp
查看>>
LAMP--Apache 日志切割
查看>>
Microsoft System Center 2012(六)-SCVMM 2012添加ESXI5主机
查看>>
Eova项目启动后加载模板错
查看>>
创新精神可以培养
查看>>