1.git 安装
2. 配置文件介绍
Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。
这些变量存放在三个不同位置:
/etc/gitconfig 文件
:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。~/.gitconfig 文件
:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件)
:这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。
如果要查看已有的配置信息,可以使用命令:
git config --list
配置用户名和电子邮箱
git config --global user.name "zyj"
git config --global user.email test@runoob.com
配置文本编辑器,设置Git默认使用的文本编辑器, 一般可能会是 Vi 或者 Vim,可以重新设置。
git config --global core.editor emacs //改为emacs
配置差异分析工具
git config --global merge.tool vimdiff //改为vimdiff
3. git工作流程
- 克隆git资源作为工作目录
- 修改资源
- 如果其他人修改了,可以更新资源
- 提交之前查看修改
- 提交修改
- 可以撤回提交再次修改
4. 基本概念
本地仓库的git一共有三棵树维护:
- working dir: 持有实际文件
- index: 临时保存改动
- head:指向最后一次提交
5. 工作实现
- 创建新的文件夹,打开执行
git init
创建新的仓库
- 拷贝本地代码/远程服务器代码 到仓库
git clone /path/to/repository
git clone username@host:/path/to/repository
- add 添加到暂存区
git add <filename>
git add *
- commit 改动提交到head
git commit -m "代码提交信息"
- push 提交到远端仓库
git push origin master
ps: 连接到远端仓库
本地生成密钥
ssh-keygen -t rsa -C "your_email@youremail.com"
注意提示文件中有密钥保存的位置
打开文件,复制生成的文件.pub公钥文件,在github的 Settings–>SSH and GPG keys–>New SSH key,key中粘贴复制的内容(Title自定义)。
在github端创建仓库,在远程仓库获取http连接或者ssh连接地址。
在本地仓库执行以下命令进行关联
git remote add origin git@github.com:zyj2015216789/protocal_stack.git
查看本地关联的远端仓库的地址
git remote -vv
6. 分支
master 是默认的分支,在其他分支进行开发,然后合并到主分支上,除非将分支推送到远端仓库,否则分支不为他人所见。
git checkout -b branch_name // 切换为其他分支
git checkout master //切换为主分支
git branch -d brancke_name //删除分支
git push origin <branch> //分支推送到远端
7. 更新合并
从远端仓库获取fetch并合并merge远端改动,执行
git pull
将本地仓库更新到最新的改动
如果要合并其他分支到当前分支
git merge <branch>
如果出现conflict,需要手动合并这些冲突,改完之后,执行命令标记为合并成功
git add <filename>
合并改动之前,可以使用如下命令预览差异:
git diff <source_branch> <target_branch>
8. 标签
可以执行如下命令创建一个叫做 1.0.0 的标签:
git tag 1.0.0 1b2e1d63ff
1b2e1d63ff 是你想要标记的提交 ID 的前 10 位字符。可以使用下列命令获取提交 ID:
git log
你也可以使用少一点的提交 ID 前几位,只要它的指向具有唯一性。
9.版本回退
使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。
git checkout -- <filename>
假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:
git fetch origin
git reset --hard origin/master