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使用_第1张图片

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使用_第2张图片
把文件提交到把版本库:

// 查看生产车间(工作区)状态
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的分支

分支图示:
git使用_第3张图片
常用分支创建与切换:

// 初次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使用_第4张图片
当前分支有文件让如暂存区没有提交时,需要切换分支的,使用临时存储区保存当前分支暂存区状态:

// 将当前分支暂存区状态保存到临时存储区
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最新的提交点上,再合并:
图示:
git使用_第5张图片
使用:

// 移动ask分支基础点,在ask分支中操作
git rebase master

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

2.代码托管平台

使用github代码托管平台创建项目:
git使用_第6张图片
选有配置文件时创建项目,会有一次初始化提交
git使用_第7张图片

3.推送项目

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

ssh-keygen -t rsa // 一直回车

在C:\Users\uername.ssh文件夹中生成 id_rsa和id_rsa.pub:将公钥id_rsa.pub配置到github上
git使用_第8张图片
功能命令使用:

// 克隆项目代码到本地
git clone [email protected]:3317414758/ts-vue.git

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

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

4.本地主动关联远程

// 使用ssh关联远程
git remote add origin [email protected]: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 [email protected]: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...

你可能感兴趣的:(git)