乐趣区

关于git:git使用

git 根本应用

一、git 理解

git 是一款分布式的版本控制系统
    对版本库的治理,版本库就是寄存了多个代码版本,应用时,相当于能够后悔药,能够回退到某个版本
    分布式,散布到每个电脑上,都有本人的版本库,能够本地对版本进行治理,无需网络
    分布式对应的就是集中式,版本库在地方服务器,版本的治理须要提交到服务器中进行,须要网络

a.git 装置

git for windows, 下载地址:

https://github.com/git-for-windows/git/releases/latest
https://git-scm.com/download/win

应用:

git 版本查看 git –version

b.git 配置

全局配置文件为 C:\Users\uername.gitconfig,执行任何 Git 配置命令后文件将主动创立。
配置个人信息命令:

 git config --global user.name "jiang"

部分初始化版本库:

git init 
// 会在以后文件夹目录下,初始化新建一个版本库文件.git

// 配置部分版本库个人信息命令
 git config --global user.name "jiang"

// 用 sublime 关上配置文件查看
subl .git/config

c. 克隆我的项目

git clone https://gitee.com/lavard/tailwind-css.git


// 删除 文件夹
rm -rf tailwind-css

二、git 罕用操作

1.git 操作控制剖析


把文件提交到把版本库:

// 查看生产车间 (工作区) 状态
git status

// 从生产车间 (工作区) 增加到运输车(暂存区)
git add a.js
git add . // 提交所有文件

// 将运输车 (暂存区) 所有文件提交到版本库
git commit -m 'test commit'

// 配置.gitignore 疏忽文件
*.txt
!a.txt
vendor/data.json

删除版本库文件:

// 同时删除版本库文件与工作区文件
git rm readme.txt

// 删除版本库文件的同时,保留工作区文件
git rm --cached readme.txt

批改把版本库文件:

git mv msg.js data.js

git add data.js

git commit -m 'msg.js to rename data.js'

查看 git 日志文件:

git log 
git log -p        // 按 q 退出以后日志状态

批改修后一次提交:

git commit --amend
// 进入 vim 编辑器,编辑最初一次提交

治理暂存区中的文件:

// 将文件从暂存区撤销
git restore --staged msg.json

// 将工作区的文件回退到版本库的最新版本
git restore msg.json

git 命令别名设置 alias:

git config --global alias.a add

// 应用时
git a msg.json

可间接在 .gitconfig 配置文件中配置:

[alias]
    a = add .
    c = commit
    l = log

系统命令别名设置,在 C:\Users\uername.base_prefile 文件中配置:

alias gs="git status"
alias gc="git commit -m"
alias ga="git add ."

在 git 终端中应用:

gs        // 等同于 git status

2.git 的分支

分支图示:

罕用分支创立与切换:

// 首次 commit 时,才会创立 master 分支

// 查看所有分支,及以后开发所在分支
git branch

// 创立新分支
git branch bbs

// 切换分支
git checkout bbs

// 创立并切换新分支 git branch bbs + git checkout bbs
git checkout -b bbs

分支合并与删除:

// 在主分支中合并与删除分支

// 合并 ask 分支
git merge ask

// 查看已合并分支, 未合并分支用 --no-merged
git branch --merged

// 删除已合并 ask 分支 参数 -d 删除未合并分支 参数 -D
git branch -D ask

分支合并抵触产生,当两分支同时批改的了同一份文件时,在合并的时候,就会呈现分支合并抵触:
解决分支合并抵触:

// 在 master 分支中解决
// master 分支中有 hello.js

// 合并 ask 分支 批改了 hello.js
git merge ask

// 合并 bbs 分支 批改了 hello.js
git merge bbs

// 报错 CONFLICT (content): Merge conflict in hello.js

// 解决抵触
vim hello.js

// 将手动解决过后的 hello.js,从新提交到 master 分支
// git add hell.js
// git commit -m 'branch merge conflict handle success'

git 开发,罕用分支模式:

以后分支有文件让如暂存区没有提交时,须要切换分支的, 应用长期存储区保留以后分支暂存区状态:

// 将以后分支暂存区状态保留到长期存储区
git stash

// 查看长期存储区的列表
git stash list

// 复原以后分支保留的长期暂存区的状态
git stash apply // 默认未 stash@{0}
git stash apply stash@{0}

// 删除长期暂存区的状态
git stash drop stash@{0}

// 复原以后分支保留的长期暂存区的状态, 同时删除长期暂存区的状态

git stash pop stash@{0}

三、操作 git 近程

1.git 标签

tag 标签,对某一个阶段的总结,这个阶段时完结的,绝对稳固的
命令:

// 打标签
git tag v1.0

// 查看所有标签
git tag 

git 打包分支成 zip

                // zip 格局   放入 hd/ 文件夹下打包   打包名称    打包分支
git archive --format=zip  --prefix='hd/' --output master.zip master

git 分支合并 rebase(replace base)
当在拆散 ask 分支后,master 分支从新提交了文件,再合并分支时,会呈现,合并分支,这里能够应用 rebase, 将 ask 分支在 master 分支的拆散根底点,移到 master 最新的提交点上,再合并:
图示:

应用:

// 挪动 ask 分支根底点,在 ask 分支中操作
git rebase master

// 再切换到 master 分支中,合并 ask 分支
git checkout master
git merge ask

2. 代码托管平台

应用 github 代码托管平台创立我的项目:

选有配置文件时创立我的项目,会有一次初始化提交

3. 推送我的项目

再 git 终端中,生成 ssh 密钥:

ssh-keygen -t rsa // 始终回车

在 C:\Users\uername.ssh 文件夹中生成 id_rsa 和 id_rsa.pub:将公钥 id_rsa.pub 配置到 github 上

性能命令应用:

// 克隆我的项目代码到本地
git clone git@github.com:3317414758/ts-vue.git

// 在本地版本库中编辑、提交

// 将本地版本库推送到近程仓库
git push

4. 本地被动关联近程

// 应用 ssh 关联近程
git remote add origin git@github.com:3317414758/git_test.git

// 产看近程
git remote -v

// 推送到近程
git push -u origin master

// 删除近程
git remote rm origin

5.push 应用

// 将以后分支推送到 origin 主机的对应分支(如果以后分支只有一个追踪分支,可省略主机名)
git push origin

// 应用 - u 选项指定一个默认主机 , 这样当前就能够不加任何参数直播应用 git push
git push -u origin master


// 本地 ask 分支关联近程分支并推送
git push --set-upstream origin ask

6. 拉取近程分支

将我的项目分支拉去到本地编辑后推送:

// 克隆我的项目,只有 master 分支
git clone git@github.com:3317414758/git_test.git

// 拉取 ask 分支到本地,命名为 ask 分支
git pull origin ask:ask

// 将本地分支向对应的近程分支关联并推送
 git push --set-upstream origin ask
7. 近程分支合并
//  切换到 master 分支,将 master 分支更新到最新状态
git pull

// 切换到 ask 分支,将 ask 分支根底点移到 master 分支最新状态
git rebase master

// 切换到 master 分支中,合并 ask 分支
git merge ask

// 查看已合并的分支
git branch --merged

// 将合并后的 master 分支,推送到近程
git pull

// 

8. 删除近程分支

// 实现开发后,删除 ask 分支
git push origin --delete ask

// 删除本地分支
git branch -d ask

参考文档:https://doc.houdunren.com/git…

退出移动版