GIT 安装和使用
GIT 安装和使用
一、GIT 介绍
Git是一个免费的开源 分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有事务。
GIT 下载页面 https://git-scm.com/downloads
GIT 工作流程
- Workspace(工作区):就是电脑里看到的目录。
- Stage/Index(暂存区):一般存放在 ".git目录下" 下的index文件中。
- Repository(本次仓库/版本库):工作区有一个隐藏目录.git
- Remote(远程仓库):Github 或者是公司内部搭的服务器
二、GIT 安装
下载完成后,选择安装路径,进行安装,我是用的是Git 2.23.0
选择组件
选择默认编辑器
选择命令行工具
选择客户端
选择安全连接方式
检出和提交换行格式
默认终端
其它选项
实验性功能
安装成功
三、GIT 使用
1. 配置
- 检查是否安装成功。在桌面右击Git Bash Here,出现终端,输入命令
git --version
查看版本号。 - Git 配置文件
- ``/etc/gitconfig
文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有
--system选项的
git config` 时,它会从此文件读写配置变量。 ~/.gitconfig
或~/.config/git/config
文件:只针对当前用户。 可以传递--global
选项让 Git 读写此文件。- 当前使用仓库的 Git 目录中的
config
文件(就是.git/config
):针对该仓库。 - 每一个级别覆盖上一级别的配置,所以
.git/config
的配置变量会覆盖/etc/gitconfig
中的配置变量。 - 在 Windows 系统中,Git 会查找
$HOME
目录下(一般情况下是C:\Users\$USER
)的.gitconfig
文件。 Git 同样也会寻找/etc/gitconfig
文件,但只限于 MSys 的根目录下,即安装 Git 时所选的目标位置。
- ``/etc/gitconfig
- 配置用户名和邮箱
- 设置用户名:
git config --global user.name "abc"
- 设置邮箱:
git config --global user.email "xxx@xx.com"
- 查看用户名:
git config user.name
- 查看邮箱:
git config user.email
- 设置用户名:
- 查看当前配置信息
git config --list
- 使用帮助信息
git help 命令
2. 创建版本库
版本库又名仓库,英文名repository,这是一个目录,目录里的文件被Git 管理。所以创建一个版本库只需要在一个空目录里使用 命令即可。
git init
但是要注意,git 只能跟踪文本文件的改动,避免出现编码问题,所有文本最好使用标准的 无BOm 的UTF-8 编码。
添加文件到git 仓库
- 先任意编辑一个文本文档。比如一个readme.txt,随意填写一些内容。
# 首先将文件添加到 sage
git add readme.txt
# 提交到 Repository 的当前分支,我们创建 git版本库的时候,会自动创建一个master 分支。
git commit -m "My first submission."
# 查看还有那些文件没有提交
git status
# 修改readme.txt 文件,可以使用 git status 查看是否有修改。查看workspace 与 Repository,当stage 不是空,对比的是 workspace 和 stage 的差异。
git diff readme.txt
# 显示摘要而非整个 diff
git diff --stat
# 查看 Repository 和 stage 的差异。
git diff --cached readme.txt
git diff --staged
# 查看 Repository 和 workspace 的差异
git diff HEAD -- readme.txt
# 然后再使用以上几步,进行提交
版本回退
# 查看历史记录,记录会按时间顺序逆序展示
git log
# 如果感觉输出信息太多,可以使用参数
git log --pretty=oneline
# HEAD 表示当前版本,id 就是那个很长度字符串。上个版本就是 HEAD^,上上个就是 HEAD^^。以此类推,如果比较多,可以使用 HEAD~100
git reset --hard HEAD^
# 如果要想恢复,需要使用 id,每个人的都不一样,id 不用写完,但是要和已有的不冲突
git reset --hard fb110
# 如果回退后,希望恢复,但是忘记id了,可以查看命令记录,有相应的id号。顺序也是按照时间逆序
git reflog
# 撤销workspace的修改,将Repository的最近文件覆盖workspace。没有--,就变成了“切换到另一个分支”的命令
git checkout -- readme.txt
# 撤销 stage 的修改。使用已提交到Repository的最近文件覆盖stage
git reset HEAD -- readme.txt
# 如果已提交到Repository,则需要使用版本回退
git reset --hard HEAD^
# 自己错删文件,需要恢复
git checkout -- test.txt
# 确定要删除库中的文件
git rm test.txt
git commit -m "remove test.txt"
每次提交的信息以时间逆序排列,HEAD 就是最新记录的指针,可以快速的找到需要的记录。
3. 远程仓库
创建SSH Key
ssh-keygen -t rsa -C "xxx@xx.com"
将用户目录下的.ssh 目录下的公钥内容复制到 https://github.com/settings/keys 中即可,title 任意。
由于现在是 Remote 上的仓库是空的,所以 Repository 连接 Remote
# 将 Repository 与 Remote 相连。添加后,远程库的名字就是origin,这是Git默认的名称。
git remote add origin git@github.com:username/repositoryname.git
# 现象 remote 复制到本地
git clone git@github.com:JackingQueen/FirestTest.git
# 将 Repository 的当前分支 master 推送到 origin
git push -u origin master
4. 分支管理
创建与合并分支
# 创建other1分支
git branch other1
# 切换other1分支
git checkout other1
# 快速创建并切换分支,相当于上面两个命令
git checkout -b other1
# 创建并切换分支也可以使用
git switch -c other1
# 查看当前分支
git branch
# 合并other1分支到当前分支,这次合并是“快进模式(Fast-forward)”,不是每次合并都能Fast-forward
git merge other1
# 切换回 master
git checkout master
# 切换回已有分支也可以使用
git switch master
# 删除 other1分支
git branch -d other1
解决冲突
# 以上是在当前分支要超过合并分支的时候,可以使用快进模式,但是如果两个分支对同一文件进行了不一样的操作,就会出现冲突
git switch -c other2
# 加入新内容 123456789
vi test.txt
git add test.txt
git commit -m "o2 commit"
git switch master
# 加入新内容 123abc
vi test.txt
git add test.txt
git commit -m "master commit"
# 此时将other2 合并到 master将出现冲突,合并失败
git merge other2
# 使用命令查看冲突文件
git status
# 活着使用 git log 来看
git log --graph --pretty=oneline --abbrev-commit
# 查看合并文件冲突的地方,手动解决完冲突后在提交
git add test.txt
git commit -m "test merge"
# 删除 other2 分支
git branch -d other2 # 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
# 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
git merge --no-ff -m "merge with no-ff" dev
bug 分支 和 Feature 分支
#####bug 分支#####
# 当前工作正执行到一半,但是突然有新的 bug 需要修复,可以先使用 stash 将现场储藏起来,等到以后恢复现场继续工作
git stash
# 查看刚刚的工作现场
git stash list
# 第一种:恢复后,stash内容并不删除
git stash apply
# 需要使用命令来删除
git stash drop
# 第二种:恢复的同时把stash内容也删了
git stash pop
# 再次查看,就看不到什么内容了
git stash list
# 将某个提交 复制到当前分支,需要使用这次提交的 id。比如 把bug提交的修改“复制”到当前分支,避免重复劳动
git cherry-pick 4c805e2 #####Feature分支#####
# 开发一个新feature,最好新建一个分支。如果要丢弃一个没有被合并过的分支
git branch -D dev
多人协作
# 查看远程库的信息
git remote
# 显示更详细的信息
git remote -v
# 推送分支
# bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug
# feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
# master分支是主分支,因此要时刻与远程同步
git push origin master
# dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步
git push origin dev # clone时,只能看到本地的master分支
git remote add origin git@github.com:JackingQueen/FirestTest.git
# 如果push 失败,就先抓取分支
git pull
# 如果 pull 也失败,就设置dev和origin/dev的链接
git branch --set-upstream-to=origin/dev dev
# 最后在 pull ,然后 push # rebase操作可以把本地未push的分叉提交历史整理成直线
git rebase
git log --graph --pretty=oneline --abbrev-commit
5.标签管理
Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动)。
# 创建标签
git tag v1.0
# 查看所有标签
git tag
# 根据 commid 打标签
git tag v0.9 f52c633
# 查看标签信息
git show v0.9
# 可以携带参数。用-a指定标签名,-m指定说明文字。
git tag -a v0.1 -m "version 0.1 released" 1094adb
# 删除本地标签
git tag -d v0.1
# 推送标签
git push origin v1.0
# 一次性推送全部尚未推送到远程的本地标签
git push origin --tags
# 删除远程标签,先删本地,再删远程
git tag -d v0.9
git push origin :refs/tags/v0.9
6. 自定义
- 修改颜色:
git config --global color.ui true
- 忽略特殊文件:在Git工作区的根目录下创建一个特殊的
.gitignore
文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。.gitignore
文件本身要放到版本库里,并且可以对.gitignore
做版本管理! - 配置别名:
git config --global alias.st status
GIT 安装和使用的更多相关文章
- CentOS 7 Git安装
Git安装 yum -y install git 安装后,在srv目录下建立Git的目录. 初始化一个git空仓库 git init --bare project.git 增加用于访问git仓库的用户 ...
- Git安装
前面说了很多废话,说得再好,还不如实践一次.要想使用Git,首先得安装.这次实验主要是实践怎样安装Git. 安装与检查是否安装成功 1. 在Linux(Ubuntu)上安装 上篇的Git简介已经介绍过 ...
- Git安装与配置
一.简介 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的 ...
- 版本管理之Git(二):Win7上Git安装及简单配置过程
一.安装包 msysgit(Windows版本的Git) 下载地址:http://code.google.com/p/msysgit/downloads/list?q=full+installer+o ...
- git安装及命令使用和github网站
最近参与别人的github项目时,学习了git的使用,首先需要在https://github.com/网站上注册账号和邮箱,然后fork一个开源项目,然后下载目前Windows下最新版本的git,下载 ...
- Git 安装
安装参考资料: http://lzw.me/a/msysgit-tortoisegit-win-git.html http://blog.csdn.net/qwiwuqo/article/detail ...
- 转 git安装配置
Win7上Git安装及配置过程 一.安装说明 1.Git在windows平台上安装说明. Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件 ...
- git学习1:git安装和配置
Git是什么?世界上最先进的分布式版本控制系统,记录了一个文本文件的每次一修改信息,比如,一篇散文,从草稿到最终出版,经历过无数次修改,修改了标点符号形成一个版本,老师帮助修改形成一个版本,同学帮忙修 ...
- ubuntu下git安装及使用
ubuntu下git安装及使用 其实,好几个月前,就已经安装好了,可是一直搁置在那儿,所以密码等一些其它细节都忘的差不多了,所以今天就重新部署了一下,并开始积极使用......... 1,git ...
- 分布式管理系统-git安装及配置
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功! 安装完成后,还需要最后一步设置,在命令行输入: $ git config - ...
随机推荐
- docker私有仓库操作(搭建、运行、添加、删除)
目录 运行私有仓库 TIPS: 上传 把镜像放入私有仓库 验证 查看 TIPS: 垃圾回收 问题排查 参考:https://yeasy.gitbooks.io/docker_practice/cont ...
- angular6 使用daterangepicker的注意事项
具体使用方法可参考这篇博客:https://blog.csdn.net/qq_43225030/article/details/84973086 需要注意的地方是,在dateRangePicker函数 ...
- javascript之DOM(二Document对象)
javascript通过Document类型来表示文档.在浏览器中document是HTMLDocument对象(继承自Document)的一个实例,表示整个html页面.而且在浏览器中documen ...
- <h1>~<h6> 标题标签
<h1>~</h6>标题系列标签 解释:h1到h6 中h1标签最大,h6标签最小,逐一递增. 例如: <h1>标签</h1> <h2>标签& ...
- 如何使用Activator.CreateInstance创建一个列表<T>,其中T在运行时是未知的?
参考网址:https://cloud.tencent.com/developer/ask/185965 using System; using System.Collections.Generic; ...
- HFS ~ Http File Server
HFS ~ Http File Server官网:https://www.rejetto.com/hfs/ 官方下载地址:https://www.rejetto.com/hfs/hfs.exe
- CefSharp 屏蔽右键菜单
既然是C#+web混用模式,当然就需要把web的右键操作屏蔽掉咯.废话不说了直接上代码. internal class MenuHandler : IMenuHandler { public bool ...
- 201871010104-陈园园 《面向对象程序设计(java)》第二周学习总结
201871010104-陈园园 <面向对象程序设计(java)>第二周学习总结 项目 内容 这个作业属于哪个课程 ttps://www.cnblogs.com/nwnu-daizh/ 这 ...
- Docker + Nginx + Tomcat 实现负载均衡简单演示
Docker + Nginx + Tomcat 实现负载均衡 环境 [root@pinyoyougou-docker ~]# docker -v Docker version 1.12.6, buil ...
- java spring框架的定时任务
由于测试的原因,最近有接触java spring @Scheduled的定时任务,当时还以为配置起来表达式和crontab是完全一样的,没想到还有些许不一样. 在spring中,一个cron表达式至 ...