Git分布式环境 - 基本操作

发布时间 : 星期二 文章Git分布式环境 - 基本操作更新完毕开始阅读

3,继续编辑,添加\然后使用git status查看状态 Changes to be committed: (use \ modified: README Changes not staged for commit: (use \ (use \ modified: README

4,提交代码到master分支,使用git commit

$gitcommit -m \ 1 file changed, 1 insertion(+) $ git status Changes not staged for commit: (use \ (use \ modified: README 我们发现README还是有修改的。

5,我们使用git diff来查看不同。 $ git diff HEAD -- README index 1e32167..5994596 100644 --- a/README +++ b/README @@ -1,4 +1,5 @@ hello world +version 2 version 1 注:

我们可以每次提交使用git commit -a -m \ 提交所有变更。 IDEA通常提交行为也是git commit -a -m \

Git文件修改回退

刚才已经跟大家进行了详细说明其实git工作目录是分为三个区域。因此我们的问及那修改回退也要对应这两种形势。

1,工作目录中的文件回退。(工作目录文件回退)。 2,Stage中的文件回退。(工作目录文件回退)。 3,分支中的文件回退。(版本文件回退)。

工作目录中的文件回退

非常简单,使用git checkout -- filename

举例说明:

我们在文件README中,添加一句话。︿( ̄︶ ̄)︿ geewu@ubuntu:~/cswp/git$ git status On branch master Changes not staged for commit: (use \ (use \ modified: README

文件内容是 hello world version 2 version 1 ︿( ̄︶ ̄)︿

现在我们使用git checkout -- filename进行回退 $git checkout -- README On branch master Untracked files: (use \ test hello world version 2 version 1

分支中的文件回退

我们使用gitadd,git commit ,git checkout对文件操作,现在我们使用git log查看日志。 $git log commit 8567016839a95f667824a63b33d7ea6055aba8e9 Author: wuge Date: Sat May 9 20:37:35 2015 -0700 add version 2 commit 59df52baee8ff3277b18c9849d9f33b316c4f915 Author: wuge Date: Sat May 9 20:31:05 2015 -0700 add version1 commit 62725a76182f86a3e41a095fd2419c001253a494 Author: wuge Date: Sat May 9 19:41:26 2015 -0700 new file commit

上边是详细的信息,我们可以采用git log --pretty=oneline。显示一个短的一行数据。 8567016839a95f667824a63b33d7ea6055aba8e9 add version 2 59df52baee8ff3277b18c9849d9f33b316c4f915 add version1 62725a76182f86a3e41a095fd2419c001253a494 new file commit 对比svn,我们可以看到git的版本号,特别长。例如version1为“59df52baee8ff3277b18c9849d9f33b316c4f915”

这里说明一下分支master中HEAD指着最新的log版本号。对应“add version2\为8567016839a95f667824a63b33d7ea6055aba8e9

我们使用git reset --hard 59df52baee。这里--hard是指reset方式,hard说明当前HEAD指针和工作目录都回到log 日志。后边是git的版本号,可以用前5个数字表示这个版本。

$git reset --hard 59df52baee #这里有一种快捷方式,在最近几个版本之前切换。可以使用git reset --hard HEAD^ (倒数第二个),HEAD^^(倒数第三个),HEAD~10(倒数第10个)。 $git log --pretty=oneline 59df52baee8ff3277b18c9849d9f33b316c4f915 add version1 62725a76182f86a3e41a095fd2419c001253a494 new file commit

$git status hello world version 1

我们也可以使用gitreflog,查看之前的日志,并回滚到之前的日志。 $gitreflog 59df52b HEAD@{0}: reset: moving to 59df52b 8567016 HEAD@{1}: commit: add version 2 59df52b HEAD@{2}: commit: add version1 62725a7 HEAD@{3}: commit (initial): new file commit

我们也可以使用这个命令回到8567016这个add version2这个版本。

$git reset --hard 8567016 $git log --pretty=oneline 8567016839a95f667824a63b33d7ea6055aba8e9 add version 2 59df52baee8ff3277b18c9849d9f33b316c4f915 add version1 62725a76182f86a3e41a095fd2419c001253a494 new file commit

Stage中文件回退

我们将git add加入stage中,我们直接使用git reset HEAD -- 文件名称。就取消掉了git add添加的内容。

联系合同范文客服:xxxxx#qq.com(#替换为@)