博客详情

git学习 (原创)

作者: 朝如青丝暮成雪
发布时间:2019-05-17 09:22:09  文章分类:git   阅读(800)  评论(0)

git学习(廖雪峰学习网站)


参考中文教程
https://git-scm.com/book/zh/v2
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

一、git的安装
yum install git

二、创建git本地库
1、git init hellogit
2、mkdir hellogit 
   cd hellogit
   git init 或者git init . #后面有个点表示当前目录创建版本库 
   git init --bare demo  创建一个裸库

三、git的时光穿梭机(时间线)
1、版本回退
git add . #将文件添加到暂存区
git commit -m "myfirst commit" #将暂存区中所有文件提交到版本库中

git log  # 查看日志
git log  --pretty=oneline   # 查看日志,单行显示
git reflog  #查看引用日志
git reflog --pretty=oneline #查看引用日志, 单行显示

git reset --hard HEAD^   #将HEAD指针指向前1次的提交(时间线) 
git reset --hard HEAD^^  #将HEAD指针指向前2次的提交(时间线) 
git reset --hard HEAD~1  #将HEAD指针指向前1次的提交(时间线) 
git reset --hard HEAD~2  #将HEAD指针指向前2次的提交(时间线) 
git reset --hard HEAD~100 #将HEAD指针指向前100次的提交(时间线) 



2、工作区和暂存区
工作区work directory
暂存区 stage 
版本库 repository 

放弃(丢弃)工作区的所做的更改
git checkout 
git checkout -- readme.txt

将暂存区的修改撤销掉(unstage),重新放回工作区
git  reset HEAD readme.txt

##可以查看工作区和版本库里面最新版本的区别:
git diff HEAD --  HelloWorld2.java

3、删除文件

1、添加文件、删除、提交。
git add test.txt
git commit -m "add test.txt file" #提交修改
rm -rf test.txt    
git add/rm test.txt
git commit -m "delete test.txt file" #提交修改 

2、误删除文件,只有文件被添加到了暂存区就可以用git使其恢复。
git add test2.txt
rm -rf test2.txt
git checkout -- test2.txt #撤销某文件工作区所做的修改

git  reset HEAD test2.txt

(
还记得如何丢弃工作区的修改吗?
git checkout -- readme.txt

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
git reset HEAD readme.txt
)


注意:如果一个文件创建后没有被add到暂存区,则git无法使其恢复。

三、分支创建和切换

git branch dev 创建分支
git checkout dev 切换分支
git checkout -b dev 创建并切换分支

切换到dev分支后,在dev上进行创建新文件、修改新文件内容,并提交到dev分支。
git checkout master #切换回master分支
git merge dev #当前处于master分支上,将dev分支的新文件(新修改)合并过来
(git merge命令用于合并指定分支到当前分支。)
将dev的代码合并到master后,我们就可以删除dev分支了
git branch -d dev #删除dev分支


准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward:
$ git merge --no-ff -m "merge dev to master" dev 

#Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash    # 存储一个stash
git stash list  #查看stash 列表
git stash pop    # 恢复最近一个stash,并删除这个stash
git stash apply stash@{0}   #恢复指定的stash
git stash drop stash@{1}  # 丢掉stash@{1} 删除stash


查看比较差异
git diff 查看工作区与暂存区的差异
git diff --cached  [...]  查看暂存区与本地最新版本库的差异
git diff HEAD [...]  查看工作区与本地最新版本库的差异


四、远程仓库的使用、分支的使用
git clone -b 1.3.x https://github.com/mybatis/spring.git (克隆远程仓库)

git remote add origin  git@github.com:michaelliao/learngit.git 将本地仓库关联到远程的一个空仓库

##推送分支到远程
git push -u origin master
git push orgin master 
 

#查看日志 
git log --pretty=raw 
#初始化一个裸库  远程仓库
git init --bare share.git

git cat-file -t c4d898  # 查看对象类型
git cat-file -p c4d898  # 查看对象内容
git cat-file -s c4d898 # 查看size 大小

git mv  oldfile newfile  #git重命名文件

查看git命令帮助
git help branch 
git branch --help


git push <远程主机名> <本地分支名>:<远程分支名>
git push origin master:master  #将本地master分支推送到远程master分支上
 

删除bug分支、特性分支
git branch -d issue-110  #-d删除分支
git branch -D feature-1  #-D强制删除



git clone  git@github.com:michaelliao/learngit.git
git checkout -b dev origin/dev #将远程仓库的dev分支检出到本地的dev分支
git branch --set-upstream-to=origin/dev dev  #指定本地dev分支与远程origin/dev分支的链接
git pull # 再执行git pull ok了。


git remote show origin  #查看远程仓库信息

git remote rename pb paul
$ git remote

2.查看远程分支
 git branch -r
3.查看所有的分支
 git branch -a


 
git checkout -b master  origin/master
git checkout -b 1.2.x  origin/1.2.x  #检出远程仓库的1.2.x分支到本地的1.2.x分支


五、tag的使用 
git checkout master #切换到master分支
git tag v1.0    #在master的最新提交上打一个tag,tag名称为v1.0
git tag #查看本地有哪些tag

git log --pretty=oneline --abbrev-commit

#使用指定的commit_id来打标签
git tag v0.9 f52c633
#查看tag详情、查看某个commit的详情
git show v0.9


还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:
$ git tag -a v0.1 -m "version 0.1 released" 1094adb

git tag -d v0.1 #删除标签

如果要推送某个标签到远程,使用命令git push origin :
$ git push origin v1.0
$ git push origin v1.0:v1.0 

切换到tag
git checkout v1.0


如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
$ git tag -d v0.9  #先删除本地tag
$ git push origin :refs/tags/v0.9  #推送 删除远程tag
 
 ### 删除远程分支和本地分支

 git push origin -d  Chapater6  # 删除远程分支
 git branch -d Chapater8  #删除本地分支

( -d 就是--delete ,而-D是 --delete --force)

需要配置一下git的接收配置,执行如下命令即可正确提交:
git config receive.denyCurrentBranch ignore


## .git/config中配置用户账号信息
[user]
name = user1
email = user1@163.com


## 以alibaba的dubbo项目为例子
git clone https://github.com/apache/incubator-dubbo.git  #克隆dubbo的源码
##版本时光穿梭机 可以在多个tag中来回切换、穿梭
git reset --hard dubbo-2.6.4
git reset --hard dubbo-2.6.5
git reset --hard dubbo-2.6.6
git reset --hard dubbo-2.7.0
git reset --hard dubbo-2.7.1
git checkout -b  dubbo-2.7.x  tag_name


#获取了tag_name的临时快照
git checkout tag_name 
#基于某个指定tag签出一个新分支
git checkout -b branch_name tag_name 

例如 git checkout -b dubbo-2.6.6 dubbo-2.6.6 切换到新分支dubbo-2.6.6分支上基于tag dubbo-2.6.6。

六、git的命令别名

配置一个git last,让其显示最后一次提交信息:
$ git config --global alias.last 'log -1'
这样,用git last就能显示最近一次的提交:
$ git last
 
七、gitlab的搭建
在centos7.5系统中安装gitlab

关键字:  git

上一篇:jenkins持续集成

下一篇:查找进程pid

评论信息
暂无评论
发表评论

亲,您还没有登陆,暂不能评论哦! 去 登陆 | 注册

博主信息
   
数据加载中,请稍候...
文章分类
   
数据加载中,请稍候...
阅读排行
 
数据加载中,请稍候...
评论排行
 
数据加载中,请稍候...

Copyright © 叮叮声的奶酪 版权所有
备案号:鄂ICP备17018671号-1

鄂公网安备 42011102000739号