Git(五):历史提交与远程仓库修改

目录

4、查看提交历史

4.1 查看日志详细信息

4.2 查看某次提交信息

4.3 查看更改

5、撤销操作

5.1 取消暂存的文件

5.2 撤销对文件的修改

5.3 撤销远程记录

6 远程仓库的使用

6.1 查看远程仓库

6.2 添加远程仓库

6.3 从远程仓库中抓取与拉取

6.4 同步远程仓库

6.4.1 远程推送

6.4.2 同步远程

6.5 查看远程仓库

6.6 远程仓库的移除与重命名

6.6.1 代码退回


4、查看提交历史

4.1 查看日志详细信息

    在提交了若干更新,又或者克隆了某个项目之后,通过 git log 命令回顾提交历史。

# 按提交时间列出所有的更新,最近的更新安排在最上面
$ git log
# 会列出每个提交的:
# SHA-1 校验和、提交作者和电子邮件地址、提交时间以及提交说明
# 简易查看 

    常用的有:

  • -p 用来显示每次提交的内容的差异;

  • -2 仅显示最近两次的提交(除了显示基本信息之外,还附带了每次 commit 的变化);

  • --stat 查看每次提交的简略的统计信息: 列出所有被修改过的文件、有多少修改文件以及修改文件的那些行被移除或者添加、总结。

Git(五):历史提交与远程仓库修改_第1张图片

  • --pretty 指定使用不同于默认格式的方式展示提交历史: 内建的子选项:如 oneline :将每个提交放一行显示;还有 shortfull 和 fuller

  • format 定制显示的记录格式:
# --pretty=format 列出了常用的格式占位符写法及其代表的意义
$ git log --pretty=format:"%h - %an, %ar : %s"
  • --graph 添加了一些ASCII字符串来形象地展示你的分支、合并历史:

Git(五):历史提交与远程仓库修改_第2张图片

4.2 查看某次提交信息

    使用git show命令查看某一次提交详细信息。 git show命令采用SHA-1提交ID作为参数:

$ git show fb10c87d1c2164442a3280133609a31e12e47889

Git(五):历史提交与远程仓库修改_第3张图片

  • + / - : 表示添加 / 删除;

4.3 查看更改

    通过运行 git diff 命令来回顾文件的更改:

$ git diff

Git(五):历史提交与远程仓库修改_第4张图片

5、撤销操作

在任何一个阶段,都很有可能想要撤销某些操作,通过以下基本命令进行实现(有些撤销操作是不可逆的):

$ git commit --amend

    该命令会将暂存区的文件提交,如果自上次提交依赖未进行任何修改,那么快照会保持不变,而此时修改的只是提交信息。

    当提交后忘记暂存某些需要的修改,可以这样操作:

$ git commit -m 'initial commit'
$ git add forgtten_file
$ git commit --amend

    最终只会有一个提交,第二次提交将代替第一次提交的结果。

5.1 取消暂存的文件

    当我们修改了两个文件并且想要将它们作为两次独立的修改提交,但是却意外地操作了 git add * 暂存了它们两个,这个时候怎么进行取消暂存呢,通过 git status 命令提示进行:

Git(五):历史提交与远程仓库修改_第5张图片

    在 “Changes to be committed” 文字正下方,提示使用 git restore --staged ... 来取消暂存。 所以,我们可以这样来取消暂存 noadd.txt 文件:

$ git restore --staged 

Git(五):历史提交与远程仓库修改_第6张图片

5.2 撤销对文件的修改

    当不想保留修改了的文件的时候,通过 git checkout -- filename 对修改进行恢复还原(或者 clone 完时、刚放入工作目录时)(恢复到最近的一次 add 或 commit):

$ git checkout -- filename

Git(五):历史提交与远程仓库修改_第7张图片

可以清楚的看到,在第一次将文件 noadd.txt 进行提交后进入文件跟踪才可以进行修改撤销操作,当对跟踪的文件进行内容修改之后,进行提交 git addgit commit 后,通过 git checkout -- noadd.txt 将修改后的文件进行撤销恢复到最近的一次提交操作当中。

  • 在 Git 中任何已提交的东西几乎总是可以恢复的。

  • 甚至那些被删除的分支中的提交或使用 --amend 选项覆盖的提交也可以恢复。

然而,任何你未提交的东西丢失后很可能再也找不到了。

5.3 撤销远程记录

    通过 git log 命令对所有提交的记录进行查看,选出指定的 commit ID,利用 git rebase -i 及其随后的 ID 进行对提交记录的指定删除撤销:

$ git rebase -i e10938c

    触发以上命令将会进入指定提交记录的文件内容,将 pick 更改为 drop 即可对指定的提交记录删除撤销,通过 wq 进行保存:

6 远程仓库的使用

6.1 查看远程仓库

    查看已经配置的远程仓库服务器,可以运行 git remote 命令,它会列出指定的每一个远程服务器的简写,也可以指定选项 -v,会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL。Git 指定的默认仓库服务器的名字:origin

$ git remote -v
origin  https://github.com/2**2/git-demo0823.git

Git(五):历史提交与远程仓库修改_第8张图片

6.2 添加远程仓库

运行 git remote add  添加一个新的远程 Git 仓库,同时指定一个可以轻松引用的简写:

$ git remote add sn https://github.com/**/git-demo1024.git

Git(五):历史提交与远程仓库修改_第9张图片

    现在可以在命令行中使用字符串 sn 来代替整个 URL,例如,想拉取仓库中有但目前没有的信息,可以运行 git fetch sn

$ git fetch sn

Git(五):历史提交与远程仓库修改_第10张图片

    现在 test 分支可以在本地通过 sn/test 访问到。

6.3 从远程仓库中抓取与拉取

    从远程仓库中获得数据,可以执行:

$ git fetch [remote-name]

    这个命令会访问远程仓库,从中拉取所有还没有的数据。执行完成后,将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。

    clone 仓库会自动给其添加为远程仓库并默认以 origin 为简写。所以,git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作。

git fetch 命令会将数据拉取到本地仓库 - 它并不会自动合并或修改当前的工作。

运行 git pull 通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。

6.4 同步远程仓库

git push [remote-name] [branch-name]。 当你想要将 master 分支推送到 origin 服务器时(默认),那么运行这个命令就可以将所做的备份到服务器:

$ git push origin master
# 推送到远程服务器
$ git push origin master --force

1、只有当你有所克隆的服务器的写入权限,并且之前没有人推送过,这条命令才能生效。

2、当你和其他人在同一时间克隆,而别人先推送到上游之后你再推送,此时你的推送就会被拒绝,你必须先将他们的工作拉取下来并合并到你的工作之后才能推送。

6.4.1 远程推送

# add commit remote  push

# 本地仓库暂存,把当前目录下所有的文件及子目录都添加进行管理
# $ git add [filename]
$ git add .  

# 将本地仓库暂存区的文件提交到本地仓库
$ git commit -m 'C++编写规范.md'

# 将本地仓库和远程仓库相关联
# remote : 远程仓库的别名
# url : 新建仓库的链接
$ git remote add origin [url]

$ git push

6.4.2 同步远程

    执行git pull命令以将其本地存储库与远程存储库同步:

$ git pull

#################################################################
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From http://git.oschina.net/yiibai/sample
   51de0f0..01c5462  master     -> origin/master
Auto-merging main.py
CONFLICT (content): Merge conflict in main.py
Automatic merge failed; fix conflicts and then commit the result.

6.5 查看远程仓库

    如果想要查看某一个远程仓库的更多信息,可以使用 git remote show [remote-name] 命令。 如果想以一个特定的缩写名运行这个命令,例如 origin,会得到像下面类似的信息:

$ git remote show origin

Git(五):历史提交与远程仓库修改_第11张图片

列出远程仓库的 URL 与跟踪分支的信息:

1、正处于 test 分支;

2、如果运行 git pull,就会抓取所有的远程引用,然后将远程 test 分支合并到本地 test 分支。

3、也会列出拉取到的所有远程引用:

        哪些远程分支不在你的本地,哪些远程分支已经从服务器上移除了,还有当你执行 git pull 时哪些分支会自动合并。

6.6 远程仓库的移除与重命名

    如果想要重命名引用的名字可以运行 git remote rename 去修改一个远程仓库的简写名:

$ git remote rename gs newgs

Git(五):历史提交与远程仓库修改_第12张图片

    如果因为一些原因想要移除一个远程仓库,可以使用 git remote rm :

$ git remote rm sn3

Git(五):历史提交与远程仓库修改_第13张图片

6.6.1 代码退回

$ git reset --soft(hard) commit_id

你可能感兴趣的:(Git,git)