#1. 初次运行 Git 前的配置
#1.1 配置Git SSH
- 本地 Git 仓库和 GitHub仓库之间是通过SSH加密传输文件
$ ssh-keygen -t rsa -C "email"
#密钥查看
$ cat ~/.ssh/id_rsa.pub
#添加密钥到SSH
进入github->setting->SSH and GPG keys->New SSH key: Title随便填,Key中填入id_rsa.pub中的密钥;
#验证Git SSH是否配置成功
$ ssh -T [email protected]
1.2 用户信息**
$ git config --global user.name "Git_Nmae"
$ git config --global user.email Git_Email
如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。
如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。
#1.3 文本编辑器
#Git 会使用操作系统默认的文本编辑器,通常是 Vim;修改文本编辑器为emacs
$ git config --global core.editor emacs
#1.4 查看配置信息
#配置信息存放于/etc/gitconfig 与 ~/.gitconfig;
$ git config --list
#查看Git 的某一项配置
$ git config user.name
#1.5 查看 Git 命令帮助
$ git help
$ git --help
$ man git-
#2. 获取 Git 仓库
#2.1 初始化:创建仓库
$ git init temp
temp:新建仓库名,temp文件夹下会生成.git目录,储存了资源的所有元数据;
temp:新建仓库名,temp文件夹下会生成.git目录,储存了资源的所有元数据;
$ git init . #当前目录创建仓库
#文件追踪
#产生的 .git 的子目录包含了Git 仓库中所有的必须文件;如果文件夹下有文件,还需要进行跟踪(track);
工作目录下的每一个文件都不外乎这两种状态:已跟踪或未跟踪。 已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。 工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有放入暂存区。
#查看文件状态
$ git status
#git add 命令实现对指定文件的跟踪,然后执行 git commit 提交
$ touch hello.php
$ git status -s #查看文件状态,加上参数-s可以显示更简洁
#git add . #添加所有文件到缓存区,追踪所有文件
$ git add README hello.php
$ git status -s
#git diff 可以查看工作目录中当前文件和暂存区域快照之间的差异
#提交更新
$ git commit -m '第一次版本提交'
\#-m:加注释
\#跳过提交缓存
$ git commit -a
#移除文件
$ git rm -f file:删除缓存区文件
$ git rm --cached file: 删除缓存区文件,保留工作区
#要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。
#移动文件
$ git mv file_from file_to
#忽略文件
#建一个文件.gitignore
$ cat .gitignore
*.[oa]
*~
\#忽略所有以 .o 或 .a 和(~)结尾的文件
文件
.gitignore
的格式规范如下:
- 所有空行或者以
#
开头的行都会被 Git 忽略。- 可以使用标准的 glob 模式(正则表达式)匹配。
- 匹配模式可以以(
/
)开头防止递归。- 匹配模式可以以(
/
)结尾指定目录。- 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(
!
)取反。
#2.2 克隆远程仓库到本地
$ git clone [URL]
$ git clone https://github.com/libgit2/libgit2
在当前目录下创建一个名为 “libgit2” 的目录,并在这个目录下初始化一个 .git 文件夹,从远程仓库拉取下所有数据放入 .git 文件夹,然后从中读取最新版本的文件的拷贝。 如果你进入到这个新建的libgit2 文件夹,你会发现所有的项目文件已经在里面了,准备就绪等待后续的开发和使用。
$ git clone https://github.com/libgit2/libgit2 mylibgit
``` #自定义本地仓库名字
# #3 远程仓库的使用
#添加远程仓库
```$ git remote add origin [email protected]:MeteorickLiu/biocode.git
$ git remote add origin [email protected]:Git_Name/Note.git
#origin:仓库命名
#[email protected]:Git_Name/Note.git:仓库地址
#查看当前远程库
$ git remote -v
#查看某个远程仓库
$ git remote show origin
#从远程仓库中抓取与拉取
$ git fetch [remote-name]
#远程仓库拉取到本地,自动merge
$ git pull origin master
#推送到远程仓库
$ git push origin master
#远程仓库的移除
$ git remote remove origin
#远程仓库的重命名
$ git remote rm paul
#4 打标签
Git 可以给历史中的某一个提交打上标签,以示重要。
#列出标签
$ git tag
v0.1
v1.3
$ git tag -l 'v1.8.5*'
v1.8.5
v1.8.5-rc0
标签:轻量标签(lightweight)与附注标签(annotated)。
附注标签是存储在 Git 数据库中的一个完整对象。 它们是可以被校验的;其中包含打标签者的名字、电子邮件地址、日期时间。
#添加附注标签
$ git tag -a v1.4 -m "my version 1.4"
$ git tag
v0.1
v1.3
v1.4
-m
选项指定了一条将会存储在标签中的信息。
#添加轻量标签
轻量标签本质上是将提交校验和存储到一个文件中——没有保存任何其他信息。 创建轻量标签,不需要使用 -a
、-s
或 -m
选项,只需要提供标签名字。
$ git tag v1.4-lw
$ git tag
v0.1
v1.3
#共享标签
标签传送到远程仓库服务器,才会被共享
$ git push origin v1.5
$ git push origin --tags #推送所有标签
#删除标签
$ git tag -d #删除标签
$ git push :refs/tags/ #更新
#5 撤销
#撤销最后一次git add files,你也可以用git reset 撤销所有暂存区域文件
$ git reset HEAD
#把文件从暂存区域复制到工作目录,撤销本地工作目录下对文件的修改。
$ git checkout -- CONTRIBUTING.md
使用git status
查看文件状态
#6 Git 分支管理
分支就是根据不同的开发目的从开发主线上分离出来创建个人开发分支,自行修改而不影响主线内容。
$ git branch name:创建分支
$ git branch -d name:删除分支```
#参考
Git 基础