五一Git实践

版本控制:

处理文档。常见的是Word文档的Ctrl+ZGit可以实现撤消更改 A

编辑 B,然后回到更改 A 并且不影响编辑 B 的功能。

Git术语

版本控制系统(简称 VCS)是一个管理源代码不同版本的工具。

源代码管理器(简称 SCM)是版本控制系统的另一个名称。

提交(Commit):正如字面理解的一样,你在Git上的任何操作都可以提交保存。

仓库(Repository / repo):仓库是一个包含项目内容以及几个文件(在 Mac OS X 上默认地处于隐藏状态)的目录,

用来与 Git 进行通信。仓库可以存储在本地,或作为远程副本存储在其他计算机上。仓库是由 commit 构成的。

工作目录 / 工作区(Working Directory):工作目录是你在计算机的文件系统中看到的文件。当你在代码编辑器中打开项目文件时,你是在工作目录中处理文件。

检出(Checkout):检出是指将仓库中的内容复制到工作目录下。

暂存区 / 暂存索引 / 索引(Staging Area / Staging Index / Index):Git 目录下的一个文件,存储的是即将进入下个 commit 内容的信息。

SHASHA 是每个 commit ID 编号。

分支(Branch):分支是从主开发流程中分支出来的新的开发流程。

 

 

mv:重新命名

 

创建Git仓库:

使用 git init 命令。

ls - 用来列出文件和目录

mkdir - 用来新建目录

cd - 用来更改目录,切换工作目录

rm - 用来删除文件和目录

步骤:

1.打开git Bash

2.输入mkdir+创建的文件名称


克隆:

git clone

例子:git clone https://github.com/udacity/course-git-blog-project

更改工作目录:cd+文件名称

 

 git status:是了解 Git 的核心所在,它将告诉我们 Git 正在考虑什么,以及 Git 所看到的我们仓库的状态。


git log:命令用于显示仓库中所有 commit 的信息

要退出,使用 q

 

SHA - git log 将显示每个 commit 的完整 SHA。

作者 - git log 输出结果显示了每个 commit 的作者

日期 - 默认情况下,git log 将显示每个 commit 的日期

commit 消息 - 这是 commit 消息最重要的部分…我们通常都希望看到此信息

 

git log --oneline:输出为一行,要退出,使用 q


 

git log --stat:可以用来显示 commit 中更改的文件以及添加或删除的行数。

 

git log -p:可用来显示对文件作出实际更改的选项

 

git log -p fdf5493具体定位

git show:将仅显示一个 commit。

 

git log --decorate:将显示默认视图隐藏起来的一些详情

 

git add使用 git add 将 index.html 添加到暂存区

git rm --cached 不会破坏任何属于你的文件,它只是从暂存区删掉了文件。

 

git commit:提交暂存的。

使用 -m 选项绕过编辑器:git commit -m "Initial commit"

 

良好的提交说明:

建议

消息篇幅简短(少于 60 个字符)

解释提交的作用(不是如何更改或为何更改!

 

禁忌

请勿解释为何做出了这些更改(下文会深入讲解这一点)

请勿解释如何进行了更改(这是 git log -p 的目的!)

请勿使用单词"and"

如果你必须使用 "and",则你的提交说明可能进行了太多的更改,将这些更改拆分为独立的 commit

例如 "make the background color pink and increase the size of the sidebar"

 

git diff:可以用来查看已被加入但是尚未提交的更改。

 

如果你想将某个文件保留在项目的目录结构中,但是确保它不会意外地提交到项目中,可以使用名称特殊的文件 .gitignore(注意文件名开头的点,很重要!)。将此文件添加到 new-git-project项目根目录。你只需列出希望 git ignore(忽略,不跟踪)的文件名,git 将忽略这些文件。

通配符允许你使用特殊的字符来表示某些格式/字符。在 .gitignore 文件中,你可以使用:

空白行作为空格

#将行标记为注释

*与 0 个或多个字符匹配

?与 1 个字符匹配

[abc]与 a、b 或 c 匹配

**与嵌套目录匹配 - a/**/z 与以下项匹配

a/z  a/b/z a/b/c/z

 

 

git tag -a v1.0:使用了 -a 选项,该选项告诉 git 创建一个带注释的标签。如果你没有提供该选项(即 git tag v1.0),那么它将创建一个轻量级标签。

删除标签:通过输入 -d 选项 (表示 delete 删除!)加上标签名称来删除 git 标签:git tag -d v1.0

 

git branch 命令用来与 git 的分支进行交互

 

要创建分支,只需使用 git branch 并提供要创建的分支对应的名称。git branch sidebar

 

git checkout:在进行 commit 时,该 commit 将添加到当前分支上。虽然我们创建了新的 sidebar 分支,但是没有向其添加新的 commit,因为我们尚未切换到该分支。如果我们现在进行 commit 的话,该 commit 将添加到 master 分支,而不是 sidebar 分支。我们已经在演示中看到这一情况,要在分支之间进行切换,我们需要使用 git checkout 命令。

日志中的分支: git log --oneline --decorate

删除分支:git branch -d sidebar

注意,无法删除当前所在的分支。因此要删除 sidebar 分支,你需要切换到 master 分支,或者创建并切换到新的分支。

 

了解分支:git reset --hard HEAD^

合并指令:git merge <name-of-branch-to-merge-in>

快进合并:git merge footer

 

更改最后一个 commitgit commit --amend

编辑文件、保存文件、暂存文件、运行 git commit --amend

 

还原(revert):git 会执行和 commit 中的更改完全相反的更改。

git revert 1234567

 

使用 git reset 命令将清除当前分支上的 commit

git reset --mixed HEAD^会把 commit 9ec05ca 中做出的更改移至工作目录中。

git reset --soft HEAD^ 会把 commit 9ec05ca 中做出的更改直接移至暂存区。

git reset --hard HEAD^ 将清除 commit 9ec05ca 中做出的更改

 

远程仓库

访问远程仓库的方式有多个:

使用 URL

使用系统文件的路径

 

git remote命令可以让你管理远程仓库和与之交互

查看远程仓库的完整路径,只需使用 -v 选项即可:

 

创建远程仓库:

1. 注册GitHub账号

2. 点击右上角+

3. 点击New repository

4. 按要求输入信息

 

git remote add origin https://github.com/Daguo122/first-project.git

使用 git remote add 命令添加了一个远程仓库的链接,然后我用 git remote -v 检验是否一切正常。

git remote add 用于添加到新的远程仓库的连接。

git remote -v 用于查看远程仓库与连接之间的详细信息。

 

推送 commits

git push 命令用于从本地仓库向远程仓库推送 commit

git push origin master 

从远程仓库拉取修改

git pull origin master(合并本地和远程仓库)

git fetch origin master(不合并)

Fork

点击右上角的fork

从远程clone到本地 


要看到每位贡献者在此仓库中添加了多少 commit ,一个快捷的方法是使用 git shortlog 命令

git shortlog 显示了按字母顺序排序的人名列表,以及他们对应的提交说明。

如果我们只想看到每个开发者的 commit 数量,我们可以添加几个选项:用 -s 仅显示 commit 的数量(而不是每个 commit 的消息),以及用 -n 来按数量排序(而不是按作者姓名的字母顺序)。git shortlog -s -n

另一种显示某个作者所有 commit 的方法是使用常规的 git log 命令,但包含 --author 选项来筛选所述作者的 commit git log --author=Surma

git log --author=Paul Lewis,就无法正常运行。如果不加引号,Git 会认为 Lewis 不是 "author" 选项的一部分,从而导致错误。git log --author="Paul Lewis"

使用 git shortlog 按作者对 commit 分组

  $ git shortlog

使用 --author 选项筛选 commit

  $ git log --author="Richard Kalehoff"

使用 --grep 选项筛选 commit

  $ git log --grep="border radius issue in Safari"

Pull Request(拉取请求)是向初始或源仓库的维护者发出的请求,以让其将你在他们项目的 fork 上所做的更改应用在他们的项目中。你请求他们拉取你做的更改。

1.你必须 fork 源仓库

2.将你的 fork 克隆到你的计算机

3.进行一些 commit(最好是在特性分支上!)

4. commit 推送回你的 fork

5.创建一个新的 Pull Request,并选择包含你的新 commit 的分支

Star(收藏)和 Watch(关注)

与源项目保持一致

将使用 git remote 命令来向此列表添加一个新的简写名和源仓库的 URL。这会提供给我们一个与源仓库之间的连接

git remote add upstream https://github.com/udacity/course-collaboration-travel-plans.git

使 git remote rename origin mine origin重命名为mine

拉取上游变更:git pull upstream master

commit 压制

使用非常强大的 git rebase 命令

在命令 git rebase -i HEAD~3 中,我们告诉 Git 使用 HEAD~3 作为其他所有 commit HEAD~2HEAD~1 HEAD)将连接到的基底。命令中的 -i 代表"交互式"



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值