eclipse中git插件使用

时间:2018-08-11 18:59:06   收藏:0   阅读:1799

1,首先看下文件的几个工作区:Unstaged Changes,Staged Changes,Local Repository,Remote Repository。

技术分享图片

图片中只展示两个工作区:Unstaged Changes,Staged Changes,但是当你点击提交(Commit)按钮的时候,它就会被提交到本地仓库(Local Repository)了。

如果你点击Push branch的时候,它就提交到远程仓库(Remote Repository)了。操作方法如下:

技术分享图片

选择你刚才提交的本地分支,如上图,带有local标识的,然后右击,再选择Push Branch。就提交到远程仓库(Remote Repository)了。

2,你提交文件了,发现该错了,想撤回,怎么办?

技术分享图片

其中:Working Area对应eclipse中git插件的状态是Unstaged Changes,Staging Area对应eclipse中git插件的状态是Staged Changes,后面的两个阶段跟eclipse中git插件的状态是一样的意思。

4个阶段分为3个步骤:

技术分享图片

第一步--》第二步:git add .把所有文件放入暂存区。

第二步--》第三步:git commit -m "comment",其中comment表示提交的注释。

第三步--》第四步:git push把所有文件从本地仓库推送进远程仓库。

当然,以上4个区,进入每一个区成功之后会产生一个状态,再加上最初始的一个状态,一共是5种状态。以下我们把这5种状态分别命名为:

未修改(Origin):从git服务器上下载下来的文件的状态,原始状态

已修改(Modified):Working Area

已暂存(Staged):Staging Area

已提交(Committed):Local Repository

已推送(Pushed):Remote Repository

撤销修改的步骤:

1)检查修改

了解了基本概念之后,我们来谈一谈犯错误之后如何撤销的问题。首先,我们要了解如何检查这3个步骤当中每一个步骤修改了什么,然后才好判断有没有修改成功。检查修改的二级命令都相同,都是diff,只是参数有所不同。

已修改,未暂存

git diff

首先,我们来看一下,如果我们只是简单地在浏览器里保存了一下文件,但是还没有做git add .之前,即已修改(Modified):Working Area,我们如何检查有哪些修改。我们先随便拿一个文件来做一下实验:

技术分享图片

 

我们在文件开头的第2行胡乱加了4个数字1234,存盘,这时文件进入了已修改状态,但是还没有进入暂存区,我们运行git diff,结果如下:

diff --git a/index.md b/index.md

index 73ff1ba..1066758 100644

--- a/index.md

+++ b/index.md

@@ -1,5 +1,5 @@

---

-layout: main

+1234layout: main

color: black

---

git diff的结果告诉我们哪些文件已经做了哪些修改。

已暂存,未提交,即已暂存(Staged):Staging Area

git diff --cached

现在我们把修改放入暂存区看一下。先执行git add .,然后执行git diff,你会发现没有任何结果:

技术分享图片

 

这说明git diff这个命令只检查我们的工作区和暂存区之间的差异,如果我们想看到暂存区和本地仓库之间的差异,就需要加一个参数git diff --cached:

diff --git a/index.md b/index.md

index 73ff1ba..1066758 100644

--- a/index.md

+++ b/index.md

@@ -1,5 +1,5 @@

---

-layout: main

+1234layout: main

color: black

---

这时候我们看到的差异是暂存区和本地仓库之间的差异。

已提交,未推送,即已提交(Committed):Local Repository

git diff master origin/master

现在,我们把修改从暂存区提交到本地仓库(Local Repository),再看一下差异。先执行git commit,然后再执行git diff --cached,没有差异,执行git diff master origin/master,可以看到差异:

技术分享图片

 

在这里,master就是你的本地仓库(Local Repository),而origin/master就是你的远程仓库(Remote Repository),master是主分支的意思,因为我们都在主分支上工作,所以这里两边都是master,而origin就代表远程。

2,开始撤销修改

了解清楚如何检查各种修改之后,我们开始尝试各种撤销操作。

已修改,未暂存,即Working Area

如果我们只是在编辑器里修改了文件,但还没有执行git add .,这时候我们的文件还在工作区,并没有进入暂存区,我们可以用:

git checkout .

或者

git reset --hard

来进行撤销操作。

技术分享图片

 

可以看到,在执行完git checkout .之后,修改已被撤销,git diff没有任何内容了。

一对反义词 git add .的反义词是git checkout .。做完修改之后,如果你想向前走一步,让修改进入暂存区,就执行git add .,如果你想向后退一步,撤销刚才的修改,就执行git checkout .。

已暂存,未提交,即Staging Area

你已经执行了git add .,但还没有执行git commit -m "comment"。这时候你意识到了错误,想要撤销,你可以执行:

git reset

git checkout .

或者

git reset --hard

git reset只是把修改退回到了git add .之前的状态,也就是说文件本身还处于已修改未暂存状态,你如果想退回未修改状态,还需要执行git checkout .。

或许你已经注意到了,以上两个步骤都可以用同一个命令git reset --hard来完成。是的,就是这个强大的命令,可以一步到位地把你的修改完全恢复到未修改的状态。

已提交,未推送,即Local Repository

你的手太快,你既执行了git add .,又执行了git commit,这时候你的代码已经进入了你的本地仓库,然而你后悔了,怎么办?不要着急,还有办法。

git reset --hard origin/master

还是这个git reset --hard命令,只不过这次多了一个参数origin/master,正如我们上面讲过的,origin/master代表远程仓库,既然你已经污染了你的本地仓库,那么就从远程仓库把代码取回来吧。

已推送,即Remote Repository

很不幸,你的手实在是太快了,你既git add了,又git commit了,并且还git push了,这时你的代码已经进入远程仓库。如果你想恢复的话,还好,由于你的本地仓库和远程仓库是等价的,你只需要先恢复本地仓库,再强制push到远程仓库就好了:

git reset --hard HEAD

git push -f

技术分享图片

总结:

以上4种状态的撤销我们都用到了同一个命令git reset --hard,前2种状态的用法甚至完全一样,所以只要掌握了git reset --hard这个命令的用法,从此你再也不用担心提交错误了。

本文再贡献其他git命令:

git config

git init

git clone

git add

git commit

git diff

git reset

git status

git rm

git log

git show

git tag

git branch

git checkout

git merge

git remote

git push

git pull

git stash

所以,让我们开始吧!

git config

用法:git config -global user.name“[name]”

用法:git config -global user.email“[email address]”

此命令分别设置要与提交一起使用的作者姓名和电子邮件地址。

技术分享图片

 

git init

用法: git init [repository name]

此命令用于启动新存储库。

技术分享图片

 

git clone

用法: git clone [url]

此命令用于从现有URL获取存储库。

技术分享图片

 

git add

用法: git add [file]

此命令将文件添加到暂存区域。

技术分享图片

 

用法: git add *

此命令将一个或多个添加到暂存区域。

技术分享图片

 

git commit

用法:git commit -m“[Type in the commit message]”

此命令在版本历史记录中永久记录或快照文件。

技术分享图片

 

用法: git commit -a

此命令使用git add命令提交你添加的所有文件,并提交自此以后你更改的所有文件。

技术分享图片

 

git diff

用法:git diff

此命令显示尚未暂存的文件差异。

技术分享图片

 

用法:git diff -staged

此命令显示暂存区域中的文件与当前的最新版本之间的差异。

技术分享图片

 

用法:git diff [first branch] [second branch]

此命令显示所提到的两个分支之间的差异。

技术分享图片

 

git reset

用法:git reset [file]

此命令取消暂存文件,但它保留文件内容。

技术分享图片

 

用法:git reset [commit]

此命令撤消指定提交后的所有提交,并在本地保留更改。

技术分享图片

 

用法:git reset -hard [commit]

此命令会丢弃所有历史记录并返回指定的提交。

技术分享图片

 

git status

用法:git status

此命令列出了必须提交的所有文件,其中包括已修改(Unstaged Changes,即Working Area)的文件和没有加入git追踪的文件。

技术分享图片

 

git rm

用法:git rm [file]

此命令从工作目录中删除该文件并分阶段删除。

技术分享图片

 

git log

用法:git log

此命令用于列出当前分支的版本历史记录。

技术分享图片

 

用法:git log -follow [file]

此命令列出文件的版本历史记录,包括文件的重命名。

技术分享图片

 

git show

用法:git show [commit]

此命令显示指定提交的元数据和内容更改。

技术分享图片

 

git tag

用法:git tag[commitID]

此命令用于为指定的提交提供标记。

技术分享图片

 

git branch

用法:git branch

此命令列出当前存储库中的所有本地分支。

技术分享图片

 

用法:git branch [branch name]

此命令创建一个新分支。

技术分享图片

 

用法:git branch -d [branch name]

此命令删除功能分支。

技术分享图片

 

git checkout

用法:git checkout [branch name]

此命令用于从一个分支切换到另一个分支。

技术分享图片

 

用法:git checkout -b [branch name]

此命令创建一个新分支并切换到它。

技术分享图片

 

git merge

用法:git merge [branch name]

此命令将指定分支的历史记录合并到当前分支中。

技术分享图片

 

git remote

用法:git remote add [variable name] [Remote Server Link]

此命令用于将本地存储库连接到远程服务器。

技术分享图片

 

git push

用法:git push [variable name] master

此命令将master分支的已提交更改发送到远程存储库。

技术分享图片

 

用法:git push [variable name] [branch]

此命令将分支提交发送到远程存储库。

技术分享图片

 

用法:git push -all [variable name]

此命令将所有分支推送到远程存储库。

技术分享图片

 

用法:git push [variable name]:[branch name]

此命令删除远程存储库上的分支。

技术分享图片

 

git pull

用法:git pull [Repository Link]

此命令将远程服务器上的更改提取并合并到你的工作目录。

技术分享图片

 

git stash

用法:git stash save

此命令临时存储所有已修改的跟踪文件。

技术分享图片

 

用法:git stash pop

此命令可恢复最近隐藏的文件。

技术分享图片

 

用法:git stash list

此命令列出所有存储的更改集。

技术分享图片

 

用法:git stash drop

此命令会丢弃最近隐藏的变更集。

技术分享图片

 

本文转自:https://www.toutiao.com/a6586232599520215556/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1533516837&app=news_article&utm_source=mobile_qq&iid=39062783162&utm_medium=toutiao_android&group_id=6586232599520215556

https://www.toutiao.com/a6581719073296482823/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1532498727&app=news_article&utm_source=mobile_qq&iid=38958718850&utm_medium=toutiao_android

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!