Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。其工作:创建和保存你的项目的快照及与之后的快照进行对比。
分布式版本控制系统:不必服务器端软件支持。
Git下载地址:http://git-scm.com/downloads、
https://gitforwindows.org/(windows平台)
完成安装之后,就可以
1.使用命令行的 git 工具(已经自带了 ssh 客户端)
2.图形界面的 Git 项目管理工具。在开始菜单里找到"Git"->“Git Bash”,会弹出 Git 命令窗口,你可以在该窗口进行 Git 操作。
1.git config :专门用来配置、读取相应的环境变量。
2.各变量及存放的位置:
/etc/gitconfig
文件:适用于所有用户的配置。(读取文件方法: git config
加上 --system
选项。)~/.gitconfig
文件:用户目录下的配置文件,只适用于该用户。(读取方法: git config
加上--global
选项).git/config
文件:当前项目的 Git 目录中的配置文件,针对当前项目。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config
里的配置会覆盖 /etc/gitconfig
中的同名变量。在 Windows 系统上,Git 会找寻用户主目录下的 .gitconfig 文件。主目录即 $HOME 变量指定的目录,一般都是 C:\Documents and Settings$USER。
此外,Git 还会尝试找寻 /etc/gitconfig 文件,只不过看当初 Git 装在什么目录,就以此作为根目录来定位。
配置个人的用户名称和电子邮件地址:
$ git config --global user.name "runoob"
$ git config --global user.email [email protected]
如果用了 –global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。
如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。
设置Git默认使用的文本编辑器, 一般可能会是 Vi 或者 Vim。如果你有其他偏好,比如 Emacs 的话,可以重新设置::
$ git config --global core.editor emacs
要检查已有的配置信息,可以使用 git config --list 命令
有时候会看到重复的变量名,那就说明它们来自不同的配置文件(比如 /etc/gitconfig 和 ~/.gitconfig),不过最终 Git 实际采用的是最后一个。
也可以在 ~/.gitconfig 或 /etc/gitconfig 看到,如下所示:
vim ~/.gitconfig
显示内容如下所示:
[http]
postBuffer = 2M
[user]
name = runoob
email = [email protected]
也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,像这样:
$ git config user.name
runoob
初始化当前目录作为Git仓库:git init
初始化指定目录作为Git仓库:git init 指定目录
命令执行完后会在目录生成一个 .git 目录,所有 Git 需要的数据和资源都存放在这个目录中。
如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:
$ git add *.c
$ git add README
$ git commit -m '初始化项目版本'
以上命令将目录下以 .c 结尾及 README 文件提交到仓库中。
从现有 Git 仓库中克隆项目(或与他人合作一个项目):git clone [url]
从仓库克隆到指定的目录:git clone 仓库 指定目录/自己定义要新建的项目目录名称
$ git clone git://github.com/schacon/grit.git mygrit
执行该命令后,会在当前目录下创建一个名为grit的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录。
-s 参数,以获得简短的结果输出
“A” 状态:这个文件在我们将它添加到缓存了
“AM” 状态:这个文件在我们将它添加到缓存之后又有改动。改动后我们再执行 git add 命令将其添加到缓存中:
修改文件:一般默认vim修改
$ vim README
再执行一下 git status:
$ git status -s
AM README
A hello.php
“A” 状态:这个文件在我们将它添加到缓存了
“AM” 状态:这个文件在我们将它添加到缓存之后又有改动。改动后我们再执行 git add 命令将其添加到缓存中:
$ git add .
$ git status -s
A README
A hello.php
-m 选项:在命令行中提供提交注释。
-a 选项:跳过git add提交缓存这一步
如果你没有设置 -m 选项,Git 会尝试为你打开一个编辑器以填写提交信息。 如果 Git 在你对它的配置中找不到相关信息,默认会打开 vim
-f:强制删除
–cached:从暂存区域移除,但仍然希望保留在当前工作目录中(从跟踪清单中删除)
-r:递归删除目录中的所有子目录和文件
–oneline 选项来查看历史记录的简洁的版本。
–graph 选项,查看历史中什么时候出现了分支、合并
–reverse 参数来逆向显示所有日志。
查找指定用户的提交日志可以使用命令:git log --author=
指定日期,可以执行几个选项:–since={3.weeks.ago} 和 --before={2010-04-18},但是你也可以用 --until ={}和 --after={}。
我推荐一直创建带注解的标签。
$ git tag -a v1.0
当你执行 git tag -a 命令时,Git 会打开你的编辑器,让你写一句标签注解,就像你给提交写注解一样。
无参:查看所有标签
-a:意为"创建一个带注解的标签"。
–decorate :我们可以看到我们的标签了
如果我们忘了给某个提交打标签,又将它发布了,我们可以给它追加标签:$ git tag -a v0.9 85fc7e7
指定标签信息命令:
git tag -a -m "runoob.com标签"
PGP签名标签命令:
git tag -s -m "runoob.com标签"
创建分支命令:
git branch (branchname)
当你执行 git init 的时候,默认情况下 Git 就会为你创建 master 分支。
如果我们要手动创建一个分支。执行 git branch (branchname) 即可。
切换分支命令:
git checkout (branchname)
当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。
git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下
合并分支命令:(把分支合并到当前分支种)
git merge 被并分支
你可以多次合并到统一分支, 也可以选择在合并之后直接删除被并入的分支。
合并并不仅仅是简单的文件添加、移除的操作,Git 也会合并修改。
列出分支基本命令:
git branch
无参数:会列出你在本地的分支。
删除分支命令:
git branch -d (branchname)
https://www.runoob.com/git/git-remote-repo.html
1.添加远程仓库
(添加之前先初始化创建一个本地仓库)
进入该本地仓库输入命令
git remote add 本地仓库名 [email protected]:用户名/仓库名.git
2.本地 Git 仓库和 GitHub 仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息:
使用以下命令生成 SSH Key:
$ ssh-keygen -t rsa -C “github的注册邮箱”
3.之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在 ~/ 下生成 .ssh 文件夹,进去,打开 id_rsa.pub,复制里面的 key。
4.回到 github 上,进入 Account => Settings(账户配置)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AI9utu9I-1581006476236)(E:\笔记\多媒体\github远程仓库1.jpg)]
5.左边选择 SSH and GPG keys,然后点击 New SSH key 按钮,title 设置标题,可以随便填,再粘贴在你电脑上生成的 key。
6.验证是否成功,输入以下命令:
$ ssh -T [email protected]
Hi tianqixin! You've successfully authenticated, but GitHub does not provide shell access.
说明我们已成功连上 Github。
7.登录后点击" New repository " 如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gVCQQ9Tx-1581006476238)(E:\笔记\多媒体\github远程仓库2.jpg)]
在Repository name 填入 远程仓库名,点击"Create repository"按钮,就成功地创建了一个新的Git仓库
一些操作:
# 提交到 Github
$ git remote add origin [email protected]:tianqixin/runoob-git-test.git
$ git push -u 本地仓库名 master
查看当前配置有哪些远程仓库
git remote
-v 参数,你还可以看到每个别名的实际链接地址。
远程仓库下载新分支与数据:git fetch 远程仓库名
该命令执行完后需要执行:git merge 远程仓库名/分支名,合并到你所在的任意分支。 (这儿的/不是或的意思)
推送你的新分支与数据到某个远端仓库:
git push 远程仓库名 分支名
删除远程仓库你可以使用命令:
git remote rm 远程仓库名