JAVA工程师的冒险Level 001

🏵️🏵️🏵️🏵️JAVA工程师的冒险开始了!!!!🍁🍁🍁🍁

学习内容:Git

🪴定义:分布式版本控制系统

具有极为丰富的命令集,对内部系统提供了高级操作和完全访问

                每次提交的文件的全部内容(snapshot)都会记录下来 .

                善于保存文本文档,是为解决软件源代码(也是一种文本文档)版本管理问题而开发的.

🌿安装

https://gitforwindows.org/icon-default.png?t=M4ADhttps://gitforwindows.org/

🌱配置

1.设置名字和email

        $ git config --global user.name "Robin Hu"

        $ git config --global user.email "hudashi@gmail.com"

2.

🌵初始化项目仓库git init

1.命令 git init


现在假设有一个叫”project.tar.gz”的压缩文件里包含了你的一些文件,你可以用下面的命令让它置于Git的版本控制管理之下.

$ tar xzf project.tar.gz
$ cd project
$ git init

Git会输出:

Initialized empty Git repository in .git/

 如果你仔细观查会发现project目录下会有一个名叫”. git” 的目录被创建,这意味着一个仓库被初始化了。

上述操作的结果是 在project 目录下创建了一个 .git  隐藏目录,它就是所谓的 Git 仓库 ,不过现在它还是空的。

此时project目录就成为了工作树,每个工作树都会有一个git仓库.

在向仓库添加文档时,单纯的复制粘贴是不行的,要及逆行一系列的操作.

$ git add .

.表示当前目录

该命令是命令所生成的快照被存放到一个临时的存储区域 ,Git 称该区域为索引

$ git commit

提交命令,将索引提交到仓库

每次提交就意味着一次版本的更新

$  git commit -m " 你的版本更新信息 "

工作树中有一些文档是你不希望接受Git 管理的,如程序编译时生成的中间文件

$ cd project

$ echo "out" >  .gitignore

这样,以后使用git add 命令生成文档内容快照时,git就会忽略调out目录

🌳克隆项目仓库

仓库可以通过不止一种协议来访问,Git可以在许多写一下使用,如http(s)://  ssh://  git://

git clone git://git.kernel.org/pub/scm/git/git.git

git clone http://www.YuQingTing.org/pub/scm/git/git.git

git://协议较为快速和有效,但是有时会有防火墙阻止你的非http访问,此时你就必须使用http了.

另外访问Git URL需要法名和密码.

git  clone   robin.hu @ http://www.kernel.org/pub/scm/git/git.git

回车后,会提示你输入密码.

$ git clone  -b   master2   ../server  .

表示克隆名为master2的这个分支,如果省略 -b   <name> 表示克隆master分支。

🌴基本操作

对Git仓库所管理的文档进行管理.

1.记录更新

如果添加了一份新的文档,我需要通知仓库.工作树目录下文将用bash变量$WORK表示

$ cd $WORK

$ git add 某文档的名称

比较省心的操作是,将所有更新过的文档全部添加到索引中去.

$ git add .

还可以将文档删除,但对该文件内容无影响

$ git reset HEAD 1.txt

将1.txt删除

 git add -i命令中的revert子命令把已经添加到索引库中的文件从索引库中剔除。
 git add -i命令中的update子命令把已经被git管理的修改文件添加到索引库中。
 git add -i命令中的add untracked子命令把还没被git管理(untracted)的文件添加到索引库中。

2.提交更新

git commit   -m  "提交的描述信息"

如果我们这里不用 -m参数的话,git将调到一个文本编译器(通常是vim)来让你输入提交的描述信息

git commit  -a  -m  "提交的描述信息"

git commit  命令的 -a  选项可只将所有被修改或者已删除的且已经被git管理的文档提交到仓库中。 如果只是修改或者删除了已被Git 管理的文档,是没必要使用 git add  命令的。

3.查看文件状态

git status 可以列出当前母目录下为被git管理的文档,以及你所修改的git管理的文件但是没有提交的.

4.移除文件

git  rm 文档名

-r 选项删除文件夹

--cached 删除文档但是对该文档不进行任何操作

5.推送本地更新到服务器

git push 

6.拉服务器更新到本地

git pull

🎄查看版本历史

$ git log

$ git log --stat --summary

commit 214cf71782040579ce8c8ea3a815c0212dbca86f
Author: Robin Hu <hudashi@gmail.com>
Date:   Sun Apr 8 22:04:24 2012 +0800
     init
commit 9e041d62c0565a58efceac1ca6e75126d5a4da75
Author: Robin Hu <hudashi@gmail.com>
Date:   Sun Apr 8 22:03:14 2012 +0800
     test

首行的一连串数字和字母是该版本的项目版本号

展示该版本的细节的话

$ git show 214cf71782040579ce8c8ea3a815c0212dbca86f

$ git show 214cf 

一般只需要版本号的前几个字符就行

$ git show HEAD 

显示当前分支的最新版本的更新细节,等同于git show 

$ git show HEAD

查看HEAD的父版本

^^祖父版本

~4 祖父之祖父版本

🌾打标签

$ git tag v0.1 dfb02

之后会有更为详细的介绍

🍀撤销

1.撤销未提交的修改,回到上次提交的状态

$ git reset

$ git reset --hard HEAD

将所有的工作目录中所有未提交的内容清空

$  git checkout --  hello.rb

这条命令把 hello.rb 从HEAD中签出并且把它恢复成未修改时的样子

$  git checkout  .

这条命令把 当前目录所有修改的文件从 HEAD 中签出并且把它恢复成未修改时的样子.

2.撤销已提交的修改

第一种办法:创建一个新的提交,在你已经代码提交到服务器的情况下十分正确

$ git revert HEAD

撤销最近一次的提交

$ git revert HEAD ^

撤销上上一次的提交

$ git revert 4ab494a0bf5c5b09267a01ec03b587731d3034b4

撤销该次提交

git revert  其实不会直接创建一个提交(commit), 把撤消后的文件内容放到索引(index)里,你需要再执行 git commit 命令,它们才会成为真正的提交(commit).

第二种办法:修改你的老提交,若你已经将代码提交了,就不要这莫做

3.撤销旧提交但不保留修改

$ git reset  --hard

4.撤销旧提交但保留修改

 $ git reset  --mixed 或 git reset   --soft 

5.追加提交来修改提交

        如果你刚刚做了某个提交( commit ), 但是你这里又想来马上修改这个提交;  git commit  现在支持一个叫 --amend 的参数,你能让修改刚才的这个提交(HEAD commit). 这项机制能让你在代码发布前,添加一些新的文件或是修改你的提交注释(commit message).

          另外、如果你在老提交(older commit)里发现一个错误, 但是现在还没有发布(git push)到代码服务器上. 你可以使用 git rebase 命令的交互模式, " git rebase -i "会提示你在编辑中做相关的修改. 这样其实就是让你在rebase的过程来修改提交

🌵版本回退

回退到到branch_a的版本5731ea5cf1c544337648ffb79e6dfb5fc17fead7

$ git checkout   branch_a

$ git checkout   5731ea5cf1c544337648ffb79e6dfb5fc17fead7\

回退到tag_a代表的tag点

$ git checkout   tag_a

你打算回到最新的版本,执行

$ git   checkout   branch_a:

🌺分支管理

主分支master,Git自动产生.

1.创建分支

$ git branch local

local分支是等同于主分支的,但在local分支上进行的所有版本更新工作都不影响主分支,可以进行很多尝试.

2.查看分支

$  git branch

输出结果:

local

*  master           //表示当前分支

 3.分支切换

$ git checkout local

4.分支合并

$  git checkout   master   # 将当前分支切换为master

$  git merge   local  # 将local分支与当前分支合并

当一个分支检查无误并且与master 分支成功合并完毕后,那么这一分支基本上就没有存在的必要性了,可以删除掉:

$  git branch  -d   local  //删除分支

💐储藏修改——git stash

                用  git  stash  来保存当前的工作状态, 等你修复完bug后,执行 git  stash   apply 就可以回到之前的工作里.

 内容部分来自Hu_yilang的GIT 简介

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值