美文网首页
Git 基本操作

Git 基本操作

作者: pipizh | 来源:发表于2020-10-14 21:09 被阅读0次

分布式版本控制系统 Git

组成结构

  • 工作区:就是你在电脑里能看到的目录。两种状态:已跟踪(tracked)或未跟踪(untracked)。
  • 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录 .git,是 Git 的版本库。
  • 远程仓库

操作

初始化

// 本地初始化空仓库
git init        // 使用当前目录作为Git仓库,并创建.git文件
git init [dir_name] // 指定目录

查看状态

git status  // 查看项目的当前状态
git status -s // 以精简的方式显示文件状态
// 查看执行 git status 的结果的详细信息
git diff  // 尚未缓存的改动
git diff --cached // 查看已缓存的改动
git diff HEAD // 查看已缓存的与未缓存的所有改动
git diff --stat // 显示摘要而非整个 diff

查看历史

git log
/* 添加参数
https://www.cnblogs.com/biglucky/p/5076885.html
*/
--oneline // 简洁的版本
--before={3.weeks.ago} 
--after={2010-04-18} 
--no-merges // 隐藏合并提交
--pretty=format:"%cn committed %h on %cd" // 格式化
git blame [file_name] // 显示修改记录

添加文件到本地仓库

git add [.|file_name] // 开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态
git commit –m "commit messages" // 将缓存区内容添加到仓库中
git commit -am "项目初始化+目录结构划分" // 将已跟踪文件放到暂存区(省略 git add)
git commit --amend // 进入vim编辑器,对上次提交的内容进行修改,也可以修改提交说明

远程仓库

// 创建一个远程仓库
git remote add origin git@github.com:pipizh/mini-program.git // 本地和远程仓库相互关联
git push -u origin master // 推送 → 用本地分支合并到远程分支。

git remote -v // 查看当前的远程库,执行时加上 -v 参数,可以看到每个别名的实际链接地址。

git fetch // 从远程仓库下载新分支与数据。
git pull  // git fetch 和 git merge FETCH_HEAD 的简写。→ 将远程分支合并到本地分支。

版本回退

reset 的本质:移动 HEAD 以及它所指向的 branch

git reset HEAD file_name 
// 添加选项
git reset --hard id // 根据 id 回退到指定的提交版本,此回退操作不建议    
git reset --mixed id // (默认)
git reset --soft id
// git reflog 查看id
// --hard:删除工作空间改动代码,撤销commit,撤销git add,撤销工作区修改 
// --mixed:撤销commit,撤销git add,保留工作目录
// --soft:保留工作目录的内容,并把因为保留工作目录内容所带来的新的文件差异放进暂存区,即只撤销commit  

删除文件

git rm <file> // 删除工作区文件,并且将这次删除放入暂存区,提交之后会删除版本库中的文件。
// 同时暂存区不能存有该文件,如果删除文件之前修改过并且已经放到暂存区的话,git rm 命令会报错。必须要用强制删除选项 -f 
git rm -f <file> // 删除工作区和暂存区文件,并且将这次删除放入暂存区。
git rm --cached <file> //  删除暂存区文件,但保留工作区的文件,并且将这次删除放入暂存区。
git rm –r * // 递归删除整个目录中的所有子目录和文件

克隆

// clone 远程仓库
git clone url_name [dir_name] // 指定地址和存放目录(可选)
git clone git@github.com:fsliurujie/test.git         // SSH协议
git clone git://github.com/fsliurujie/test.git       // GIT协议
git clone https://github.com/fsliurujie/test.git     // HTTPS协议

标签管理

如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签。

git tag -a v1.0 [id] -m "commit messages"// 给最新一次提交打上(HEAD,也可通过id选定)"v1.0"的标签,-m 选项意为"创建一个带注解的标签"(可选)
git show v1.0 // 查看此版本所修改的内容

git tag // 查看所有标签
git checkout v1.0 // 切换到标签v1.0

git push v1.0
git push --tags // 推送全部尚未推送到远程的本地标签

git tag -d v1.0 // 删除本地标签v1.0
git push origin :refs/tags/v1.0 // 删除远程标签v1.0

分支管理

git branch branch_name //  创建分支
git checkout branch_name // 切换分支
git checkout -b branch_name // 创建子分支,并切换到子分支上。git 将还原你的工作目录到分支的状态

git branch -d branch_name // 删除本地分支
git push origin -d branch_name // 删除远程分支 

git branch // 查看所有分支

// 将文件推送到远程仓库并创建远程分支
git push origin branch_name

// 合并分支
git checkout branch_name_1
git merge branch_name_2 // 切换到 branch_name_1,将 branch_name_2 分支上的代码合并到 branch_name_1

git push    // 此命令默认推送到远程master

分支冲突

https://www.cnblogs.com/gavincoder/p/9071959.html

合并分支时,会产生冲突,不管在本地上合并两个分支,或是本地分支与远程分支的合并。(多人合作场景下)

如果在相同文件名下相同位置出现不同的修改(修改了同一个文件的名称),合并时就会产生冲突。Git用<<<<<<<=======>>>>>>>标记出不同分支的内容。

解决冲突:git status 查看冲突文件,再手动编辑为希望的内容并add+commit。

开发建议:每次开发前先从 git 上 down 下来最新的代码在 master 上,在 master 基础上建立自己的分支,做的修改在分支提交。push 时先从远程仓库 pull master,然后和本地分支进行合并 merge 后再 push。这样即使修改同一个文件也不容易冲突。

错误

HEAD detached from id 的解决方法

Git命令中文显示乱码的问题解决 git config --global core.quotepath false

相关文章

  • Git命令梳理

    基本操作 git init git add . git stauts git commit -m '描述' git...

  • git基本操作 梳理

    git操作梳理一、git基本操作1.创建版本仓库 git init(.git目录)2.版本创建 git add ...

  • GitFlow

    假设你已经熟悉git的基本操作:如不熟悉请参考:GitBook 这里简单回顾一下git基本操作 提交基本操作 把...

  • git基本操作二:git的基本操作

    本文会带各种命令后的图,与大部分文章区分,只有理论,没有实践 初始化本地库 命令:git init 效果: ,gi...

  • Git Cocopods 基本操作

    Git 操作 基本操作 查看当前git状态git status 添加代码到暂缓区git add . 提交代码到本地...

  • git常用操作 🎀

    git常用操作 ? 基本知识 查看git信息 修改git配置 提交类操作 分支类操作 创建分支 查看分支 修改分支...

  • git基本操作

    重要概念 已提交(mommitted)该文件已经被安全地保存在本地数据库中了 已修改(modified)修改了某个...

  • Git基本操作

    前言 Git相关操作总结 2018-7-14, 联创团队分享 文中部分图片见文末参考链接 正文 一. 基本概念 版...

  • git基本操作

    0x001 git基本命令 0x002 远程仓库配置(coding.net) 使用命令ssh-keygen -t ...

  • Git基本操作

    创建新的git仓库 git init # 初始化 git add readme.md # 添加新文件 git co...

网友评论

      本文标题:Git 基本操作

      本文链接:https://www.haomeiwen.com/subject/ckcgpktx.html