Git 基本操作

转自
https://edu.aliyun.com/lesson_489_5399?spm=5176.10731542.0.0.5592684eSpWCd5#_5399

切换到 master 主分支,然后把某个分支拉下来:

  • git checkout master
  • git pull 拉去master中的提交
  • git checkout feature/20190715_4422919_88member-day_1

至此,切换分支完成

1、获取与创建项目命令

git init	
git clone 

2、基本快照

2.1 git add

git add 命令可将该文件添加到缓存,如我们添加以下两个文件:

$ touch README
$ touch hello.php
$ ls
README		hello.php
$ git status -s?? README?? hello.php

git add . 和 git add * 区别

  • git add . 会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤
  • git add * 会忽略.gitignore把任何文件都加入

2.2 git status

git status 命令用于查看项目的当前状态

接下来我们执行 git add 命令来添加文件:

$ git add README hello.php

现在我们再执行 git status,就可以看到这两个文件已经加上去了。

$ git status -s
A  README
A  hello.php
$

新项目中,添加所有文件很普遍,我们可以使用 git add . 命令来添加当前项目的所有文件。

现在我们修改 README 文件:

$ vim README

在 README 添加以下内容:# Runoob Git 测试,然后保存退出。

再执行一下 git status:

$ git status -s
AM README
A  hello.php

AM” 状态的意思是,这个文件在我们将它添加到缓存之后又有改动。改动后我们在执行 git add 命令将其添加到缓存中:

$ git add .
$ git status -s
A  README
A  hello.php

当你要将你的修改包含在即将提交的快照里的时候,需要执行 git add。

git status: 查看在你上次提交之后是否有修改。

我演示该命令的时候加了 -s 参数以获得简短的结果输出。如果没加该参数会详细输出内容:

$ git statusOn branch masterInitial commitChanges to be committed:
  (use "git rm --cached <file>..." to unstage)

	new file:   README	new file:   hello.php

2.3 git diff

执行 git diff 来查看执行 git status 的结果的详细信息。

git diff 命令显示已写入缓存已修改但尚未写入缓存的改动的区别。git diff 有两个主要的应用场景。

  • 尚未缓存的改动:git diff

  • 查看已缓存的改动: git diff --cached

  • 查看已缓存的与未缓存的所有改动:git diff HEAD

  • 显示摘要而非整个 diff:git diff --stat

在 hello.php 文件中输入以下内容:

<?php echo '开放课堂:www.openketang.com';?>

$ git status -s
A  README
AM hello.php
$ git diff
diff --git a/hello.php b/hello.php
index e69de29..69b5711 100644--- a/hello.php+++ b/hello.php@@ -0,0 +1,3 @@+<?php+echo '开放课堂:www.openketang.com';+?>

git status 显示你上次提交更新后的更改或者写入缓存的改动, 而 git diff 一行一行地显示这些改动具体是啥。

接下来我们来查看下 git diff --cached 的执行效果:

$ git add hello.php 
$ git status -s
A  README
A  hello.php
$ git diff --cached
diff --git a/README b/READMEnew file mode 100644index 0000000..8f87495--- /dev/null+++ b/README@@ -0,0 +1 @@+# Runoob Git 测试diff --git a/hello.php b/hello.phpnew file mode 100644index 0000000..69b5711--- /dev/null+++ b/hello.php@@ -0,0 +1,3 @@+<?php+echo '开放课堂:www.openketang.com';+?>

2.4 git commit

使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中

Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址

$ git config --global user.name 'runoob'$ git config --global user.email test@runoob.com

接下来我们写入缓存,并提交对 hello.php 的所有改动。在首个例子中,我们使用 -m 选项以在命令行中提供提交注释。

$ git add hello.php
$ git status -s
A  README
A  hello.php
$ $ git commit -m '第一次版本提交'[master (root-commit) d32cf1f] 第一次版本提交
 2 files changed, 4 insertions(+)
 create mode 100644 README
 create mode 100644 hello.php

现在我们已经记录了快照。如果我们再执行 git status:

$ git status# On branch masternothing to commit (working directory clean)

以上输出说明我们在最近一次提交之后,没有做任何改动,是一个"working directory clean:干净的工作目录"

如果你没有设置 -m 选项,Git 会尝试为你打开一个编辑器以填写提交信息。 如果 Git 在你对它的配置中找不到相关信息,默认会打开 vim。屏幕会像这样:

#Please enter the commit message for your changes. Lines starting# with '#' will be ignored, and an empty message aborts the commit.# On branch master# Changes to be committed:#   (use "git reset HEAD <file>..." to unstage)## modified:   hello.php#~~".git/COMMIT_EDITMSG" 9L, 257C

如果你觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步。命令格式如下:

git commit -a

我们先修改 hello.php 文件为以下内容:

<?php echo '开放课堂:www.openketang.com';echo '开放课堂:www.openketang.com';?>

再执行以下命令:

git commit -am '修改 hello.php 文件'[master 71ee2cb] 修改 hello.php 文件
 1 file changed, 1 insertion(+)

2.5 git reset HEAD

git reset HEAD 命令用于取消已缓存的内容

我们先改动文件 README 文件,内容如下:

hello.php 文件修改为:

<?php echo '开放课堂:www.openketang.com';echo '开放课堂:www.openketang.com';echo '开放课堂:www.openketang.com';?>

现在两个文件修改后,都提交到了缓存区,我们现在要取消其中一个的缓存,操作如下:

$ git add .

$ git status -s
M  README
M  hello.pp

$ git reset HEAD -- hello.php 
Unstaged changes after reset:M	hello.php

$ git status -s
M  README
 M hello.php

现在你执行 git commit只会将 README 文件的改动提交而 hello.php 是没有的

$ git commit -m '修改'[master f50cfda] 修改
 1 file changed, 1 insertion(+)$ git status -s
 M hello.php

可以看到 hello.php 文件的修改并为提交。

这时我们可以使用以下命令将 hello.php 的修改提交:

$ git commit -am '修改 hello.php 文件'[master 760f74d] 修改 hello.php 文件
 1 file changed, 1 insertion(+)

$ git status
On branch master nothing to commit, working directory clean

简而言之,执行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的缓存。

2.6 git rm

git rm将条目从缓存区中移除。这与 git reset HEAD 将条目取消缓存是有区别的。 "取消缓存"的意思就是将缓存区恢复为我们做出修改之前的样子

默认情况下,git rm file 会将文件从缓存区和你的**硬盘中(工作目录)**删除。

如果你要在工作目录中留着该文件,可以使用 git rm --cached

如我们删除 hello.php文件:

$ git rm hello.php 
rm 'hello.php'$ ls
README

不从工作区中删除文件:

$ git rm --cached README 
rm 'README'$ ls
README

2.7 git mv

git mv 命令做得所有事情就是 git rm --cached 命令的操作, 重命名磁盘上的文件,然后再执行 git add 把新文件添加到缓存区

我们先把刚移除的 README 添加回来:

$ git add README

然后对其重名:

$ git mv README  README.md
$ ls
README.md
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值