Git命令

1、配置用户信息(Config User Info)

$ git config –global user.name

Xiao YiYun

$git config –global user.email

Xiao_yiyun@qq.com

在git.com发布时会看到你的这些信息

2、配置行尾&颜色(Config Line Endings & Color)

行尾是特别重要的,因为在不同平台中的仍然有区别:Mac,linux,Windows,CR等,所有这些选择,Git将帮助标准化那些正在被check的文件到存储库,通过设置比如 core.autocrlf

$ git config –global core.autocrlf true

$ git config –global core.autocrlf input

颜色是更多的用户界面调整,颜色是非常容易识别的东西

$ git config –global color.ui auto

$ git diff

红色:正在进行处理

绿色:运行正常

3、Config有用的设置

local:具有最高的优先级,大于global

global:稍弱,将被local覆盖

System:最弱,通常是最模糊的或者不常用的设置,将被global或者local覆盖

4.git init——初始化仓库

建立一个目录并初始化仓库。
mkdirgittutorial m k d i r g i t − t u t o r i a l cd git-tutorial
$ git init
Initialized empty Git repository in /Users/hirocaster/github/github-book
/git-tutorial/.git/

5.命令

gitignore:标识出那些文件不希望被纳入版本控制

6. git commit——保存仓库的历史记录

git commit 命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。通过这些记录,我们就可以在工作树中复原文件。
$ git commit -m “First commit”
[master (root-commit) 9f129ba] First commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README.md
-m 参数后的 “First commit” 称作提交信息,是对这个提交的概述。
每次修改都要进行add

7.git diff——查看更改前后的差别

git diff 命令可以查看工作树、暂存区、最新提交之间的差别。
修改readme
$ git diff
diff –git a/README.md b/README.md
index e69de29..cb5dc9f 100644
— a/README.md
+++ b/README.md
@@ -0,0 +1 @@
+# Git教程

8.Log命令

git log –stat 简单查看提交日志
git log –patch 会显示出具体版本间的不同,如果文件增加了内容会有绿色加号,减少了会有红色减号
git log –patch –oneline 一次日志输出中,多个选项
git log –graph 使用ascll码描述提交,同时提供每个分支的表签和我们提交的其他标签
git log –graph –all
git log –graph –decorate
git log –graph –oneline

9.Git rm命令

$ git rm file1.txt

如果你只有一个文件想要删除,使用这个命令可以真正的从文件系统中删除了文件,并且它会暂存这个文件已经被删除的事实,如果你提交了,这个文件不会从之前的历史中消失,

但会从未来的提交中消失。

10. Git add -u命令

$ git add -u .

会遍历你的工作树,寻找Git之前已经识别到的文件,现在要消失的文件,它会把他们作为新的删除来暂存,这里输入了一个点作为文件名字,那只是意味着当前工作目录的简写,当它看到add时,它会从你当前所在的目录递归到最深处寻找它能够添加的所有文件,或者说,在这个场景下,所有能够被删除的文件。

11.Git rm –cached命令

$ git rm –cached

删除这样一个文件,不想从文件系统中真正的删除它,换个说法,你想告诉Git,不再跟踪这个文件,但是把它保留在工作树中,这可能是一种情况,你以外地提交了一个文件,你并不想让他成为历史的一部分。它暂存了删除,但是,他在那里保存了文件,现在,在你的工作树中,作为一个不被追踪的文件。

12.git add,mv

  • Git mv指令

在Git中,重命名和移动文件是同一件事情 ,最基本的想法是,你有一段内容,比如一些代码,你把它从一个地方移动到另外一个地方,所以,假设我们有一些想要移动的文件从一个目录下面:

$ git mv源路径 目标路径

git已经暂存了move发生的事实,但是,如果你只是简单的使用mv命令来移动文件,然后忘了告诉git,Git注意到,某个地方出现了一个本不应该出现的新文件,它同时注意到原来的文件区域已经被删除掉了,我们可以一次一个步骤来解决它:

$ git rm //删除原来的文件

$ git add production.log //添加新文件

当我们做这些的时候,状态把这些拼在一起了,告诉我们一个移动已经发生了。

  • git add -A

$ git add -A

它发现所有的移动过去的新文件,删除所有原来的就文件,然后解释为移动已经发生了,记住,这个只是告诉git从当前工作目录开始无限向下递归,你可以比这个更加具体,比如说,如果你已经在一个目录下作了移动,称作源暮落或者类似其他的,这一切都很好,但是注意到我们并没有改变这里的文件,当我们移动他们的时候,在一个真实的场景中,你可能会改变一点文件,当你将它们从一个目录移动到另外一个目录的时候,git仍然把它看做一次移动。

  • git log -M –follow

接着上面的,移动文件之后,我们在新的路径下面编辑这个文件,做另外一次提交,所以现在我们有了3次提交——文件创建的提交,文件移动的提交,在新的地方,文件编辑的提交,我们可以使用日志命令来展示这个文件在移动过程中的历史,历史在移动的时候停止了添加开关-M和–follow:

$git log –stat -M –follow

告诉日志在文件移动过程中跟踪文件,现在就可以得到想要的结果。

  • Similarity Index

回想一下,我们什么时候提交的?在我们移动这些文件之后,commit给我们一些数字,这些数字是一个类似度,可以表现文件在移动前后内容的相似度。Git默认提供一个50%的相似度阈值,如果文件在移动前后,50%相似,他会在移动的过程中追踪它,认为它是一个移动而不仅仅是一个删除和添加,我们可以调整这个阈值,通过在开关-M之后提供一个数字,如果你比较挑剔,可以使用大于50%的数值,你可以自由地添加参数,尽管如此,注意不要把阈值设置的太小,因为在一个比较低的相似度的情况下,你不认为是相同的文件最后可能会被判定为相同的。

13.git ignore

在windows下
- 新建文本文档,重命名为.gitignore,即可创建.gitignore文件;
- 用记事本打开.gitignore文件添加忽略样式即可

14.git branch

  • git branch——显示分支一览表
    git branch 命令可以将分支名列表显示,同时可以确认当前所在分支。
  • git branch -d <分支名字>——删除分支
    -D为强制删除
  • git checkout -b——创建分支
  • git checkout <分支名>——切换到分支
  • git checkout - 切换回上一个分支 可以用“-”代替上一个分支名字

15.Merge

当出现冲突,merge结果我不想保留时候,
git merge –abort 将会帮助你
git status 进行状态验证

16.远端(Remotes)

$ git remote add目的地的名字 整个url地址

$ git remote set-url目的地名字 修改url地址

$ git remote rm远端名字

$ git remote -v得到全部的输出

远端追踪的分支则是分支间的中间人,这些分支有一些不同的唯一原因是在所有分支名字前面有一个前缀就是用来响应远程控制的,大部分情况加,这个将是origin/。

17.Fetch,Pull,Push

Fetch命令本身失去github.com抓取任何信息下载下来,把它放在远程追踪分支里。

$ git fetch origin

pull命令和fetch非常像,它将要拉取东西到origin/分支名字里,然后做合并操作合并到那个分支名字的本地版本里。

$ git pull orgin

当我们的电脑完成工作时,并且我们准备把它发送到gitHub,com,我们输入:

$ git push origin

它会把全部信息发送到gitHub.com,现在,在做这个的过程中,它同时也会更新远端追踪的分支。

18.GUI

在你日常工作任务中,去和Git和GitHub交互,图形化用户界面是一种很方便的方式。图形化用户界面可以分为两类:第一类是提供关于所有命令行的抽象,这样你就可以点击按钮开替代输命令了;第二类的目的不在于去抽象Git命令行中的一切而是使用视觉化和图表来作为补充,这些只有在臃肿的客户端中才有可能,同时,仍然提供到命令行的入口作为大部分的选择切换。GitHub为Windows/mac提供了图形用户接口,其余的可以从git-scm网站上得到跨平台界面。

19.Forking

Forking可以用来获取你的仓库并拷贝它到自己的账户下。现在,拷贝这个行为让你安全地在沙盒里进行修改。这个可以工作在开源模型中以及开放公司模型中,极大地扩展了员工的数量去向工程贡献代码。

当我们看到一个我们想要贡献代码的项目,我们点击Fork按钮,从而在自己的账户下面建立一份拷贝,然后就可以开始我们自己的修改。合适的步骤是创建一个分支在那个拷贝库上,这样就会有一个名字、标签和容器服务于一个潜在的变更版本,我们之后会把这个版本加入到原来的仓库中。

一旦这个在你的账户下面,那里就会有一些元数据可以展示哪些用户拥有这个项目的原始拷贝,你也可以看到谁复制了这个项目。网络图提供了一些元数据到提交level上,可以看到人们在这个仓库干了些什么工作。

这些是一个准备步骤,会把你的变动返回个最初项目开发者,通过Pull Request的机制。

20.soft、mixed、hard

reset针对整个仓库历史、checkout是针对某个文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值