时间:2021.03.04
环境:Windows10
目的:Git使用
说明:
作者:Zhong QQ交流群:121160124 欢迎加入!
首先来看看gitee(gitlab也有)在新建一个仓库后给予的提示
A simple command-line tutorial:
Git global settings:
git config --global user.name "Zhong"
git config --global user.email "zhong@163.com"
Create git repository:
mkdir ali
cd ali
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/zhong/ali.git
git push -u origin master
Existing repository?
cd existing_git_repo
git remote add origin https://gitee.com/zhong/ali.git
git push -u origin master
clone一个项目到本地
默认clone master分支
git clone https://gitee.com/zhong/test1
clone一个项目指定的分支到本地
git clone -b dev https://gitee.com/zhong/test1
常用命令
git 常用操作
git init 初始化一个Git仓库
git clone 项目地址 下载远程项目到本地
git config user.name 查看用户名
git config user.email 查看邮箱
git config --global user.name "Your Name" 配置全局用户名
git config --global user.email "email@example.com" 配置全局邮箱
git status 查看当前的状态
git add test.txt 在工作区添加test.txt文件到仓库(暂存区) 可多次执行添加不同文件
git add . 添加所有的文件到仓库
git diff (HEAD -- test.txt) test.txt 可以查看test.txt的log
git commit -m 'add test.txt' 把add的文件提交到仓库区并加上注释
git checkout -- readme.txt 可以丢弃工作区的修改(命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。)
git reset HEAD readme.txt 可以回退暂存区的修改到工作区
git reset --hard 69e3d 可以回退已commit的代码到69e3d(可以是之前对的某个版本)开头标记的版本
git pull 拉取最新的代码
git merge dev 合并dev分支代码到当前分支
git push -u origin master 推送代码到master
git remote 查看远程库的信息 默认=显示远程库的名称origin
git remote -v 查看远程库的详细信息
git log 显示从最近到最远的提交日志
git log --pretty=oneline commit id和注释的形式显示
git reflog 用来记录你的每一次命令(可通过此命令查找已回退到某个版本之后之前的最新版本)
创建和切换分支
git branch dev 在本地创建分支dev
git checkout master 切换到master分支
git checkout -b dev 在本地创建并切换到dev分支
(git checkout命令加上-b(branch缩写)参数表示创建并切换,相当于以下两条命令:$ git branch dev$ git checkout dev)
查看分支
git branch 查看当前分支 *表示当前分支
git branch -a 查看所有分支(本地和远端) *表示当前分支
删除分支
git branch -d dev 删除本地dev分支
版本回退
git reset --hard HEAD^ 回退到上一个版本
git reset --hard HEAD^^ 回退到上上一个版本
git reset --hard 69e3d(后面可省略不必写全) 回退到69e3d开头标记的版本
关联远程仓库(步骤)
git init 初始化一个Git仓库
git remote add origin https://gitee.com/zhong/test1 本地关联已有项目到码云远程仓库
git pull origin master
git add .
git commit -m "all"
git push -u origin master 把本地库的所有内容推送到远程库上(-u 推送本地master内容到远程仓库的master仓库 并产生关联 只需执行一次即可)
git push origin dev:dev
git发布版本步骤:
master用于发布版本 dev用于开发
当开发完一个版本后 切换到master主分支合并dev
git merge --no-ff -m "merge with no-ff" dev 推荐使用 --no-ff 参数进行普通模式合并 合并后的历史有分支,能看出来曾经做过合并,而默认fast forward合并就看不出来曾经做过合并。
接下来在master分支打标签
git tag v1.0 无备注模式 或者推荐使用下面的方式
git tag -a v1.0 -m "version 0.1 released" 1094adb 最后的1094adb是指某次的commit 可加可不加 不加默认是在最新的提交上tag
查看tag
git tag 或者下面的方式查看详细的信息
git show v1.0
推送tag到远程 默认创建的tag存在于本地 不会自动推送到远程
git push origin v1.0
回到某个版本并提交:
git reset --hard c387bc64ed6927fb2ddbe99d65456287b0a4f40b
git push origin HEAD --force
语义:
up to date 最新的
origin 源
conflict 冲突
HEAD 表示当前版本
HEAD^表示上一个版本
HEAD^^表示上上一个版本
HEAD~10表示往上10个版本
fatal: refusing to merge unrelated histories 重大的:拒绝合并不相关的历史
Enumerating 枚举
behind
diverged 分歧
staged 分段的
关注微信公众号