Git基本操作

正文开始@Assassin

目录:

  • Git基本操作
    • 1. Git工作四区:
    • 2. 四个工作区域常用操作命令 :
    • 3. Git配置操作命令:
    • 4. 工作区上的操作命令(Workspace):
      • 4.1 新建本地仓库:
      • 4.2 提交操作:
      • 4.3 撤销操作:
      • 4.4 更新操作:
      • 4.5 查询操作:
    • 5. 暂存区上的操作命令(Index/Stage):
      • 5.1 提交文件到版本库:
      • 5.2 查看信息:
      • 5.3 标签:
      • 5.4 分支管理:
    • 6. 本地仓库上的操作(Local Repository):
    • 7. 忽略文件.gitignore:

1. Git工作四区:

版本库:.git文件夹,里面包含两部分:暂存区本地仓库

名词 解释
Workspace 工作区,本地计算机存放项目文件的地方
Index/Stage 暂存区,存在于.git文件夹,存放临时文件,用来准备一个提交,但可以不用把工作目录中所有的修改内容都包含进来。这样你可以创建一个高度聚焦的提交,尽管你本地修改很多内容。使用add命令之后,将工作区的改动文件添加到此处
Local Repository 本地仓库,存在于.git文件夹,是各个分支存储处,包括git自动创建的master/main分支,使用commit命令可以将暂存区中的文件添加到本地仓库
Remote Repository 远程仓库 ,存在于git服务器

2. 四个工作区域常用操作命令 :

命令 作用
git add [file]或. 将改动从工作区提交到暂存区
git commit -m "提交说明" 将暂存区改动提交到本地仓库
git pull 拉取远程仓库改动至工作区
首先git fetch,然后git merge 拉取远程仓库改动至本地仓库,然后合并工作区
git push origin master/main 一般使用简单写法git push:推送本地仓库改动至远程仓库

3. Git配置操作命令:

git的配置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。

命令 作用
git config --list 列出当前配置
git config --local --list 列出repository配置
git config --global --list 列出全局配置
git config --system --list 列出系统配置
git config --global user.name "your name" 配置用户名
git config --global user.email "youremail@github.com" 配置用户邮箱
git config --global user.password "your password" 配置用户密码
git config --global color.ui auto 配置git命令输出为彩色
git config --global core.editor vi 配置git使用的文本编辑器
git config --global merge.tool vimdiff 配置解决冲突时使用哪种差异分析工具,比如要使用vimdiff

4. 工作区上的操作命令(Workspace):

4.1 新建本地仓库:

命令 作用
git init 在当前目录新建一个Git仓库
git init [project-name] 新建一个目录,将其初始化为Git仓库
git clone [url] 下载一个项目和它的整个代码历史
git clone [url] [project name] 克隆远程库,并且重命名项目名称

4.2 提交操作:

命令 作用
git add . 提交工作区所有文件到暂存区
git add [file1] [file2] ... 提交工作区中指定文件到暂存区
git add [dir] 提交工作区中某个文件夹中所有文件到暂存区(包括子目录)

4.3 撤销操作:

命令 作用
git rm [file1] [file2] ... 删除工作区文件,并且也从暂存区删除对应文件的记录
git rm --cached [file] 从暂存区中删除文件,但是工作区依然还有该文件
git reset HEAD [file]... 取消暂存区已经暂存的文件
git checkout --[file] 当改乱了工作区某个文件的内容,而且尚未进行add命令,想直接丢弃工作区的修改时使用此命令
git stash 隐藏当前变更,以便能够切换分支
git stash list 查看当前所有的储藏
git stash apply 应用最新的储藏
git stash apply stash@{0} 恢复指定的 stash(0代表第一个)
git stash apply --index 重新应用被暂存的变更,使用apply命令只是应用储藏,而内容仍然还在栈上,需要移除指定的储藏
git stash drop stash{0} 移除指定的储藏
git stash pop 恢复储藏,并删除stash内容

4.4 更新操作:

命令 作用
git mv [file-original] [file-renamed] 重命名文件,并将已改名文件提交到暂存区

4.5 查询操作:

命令 作用
git status 查询当前工作区所有文件的状态
git diff 比较工作区中当前文件和暂存区之间的差异,也就是修改之后还没有暂存的内容
git diff [file-name] 指定文件在工作区和暂存区上差异比较

5. 暂存区上的操作命令(Index/Stage):

5.1 提交文件到版本库:

命令 作用
git commit -m [commit info] 将暂存区的改动提交到本地仓库,每次提交都会产生一个commit id
git commit [file1] [file2] ... -m [commit info] 提交暂存区的指定文件到本地仓库,每次提交都会产生一个commit id
git commit -a 将所有已经使用git管理过的文件暂存后一并提交至本地仓库,跳过add到暂存区的过程,每次提交都会产生一个commit id
git commit --amend 提交文件时,发现漏掉几个文件,或者注释写错了,可以撤销上一次提交,即amend提供对最后一次commit的反悔,但是如果已经push过了,那么便是最后一次final提交,不能再次修改
git rebase -i HEAD~3 表示要修改当前版本的倒数第三次状态

5.2 查看信息:

命令 作用
git diff --cached 比较暂存区与上一版本的差异
git diff <file-name> --cached 指定文件在暂存区和本地仓库的不同
git log 查看提交历史
git log -p -2 参数-p展开每次提交的内容差异,用-2显示最近的两次更新
git reflog 用来记录每一次命令,即显示整个本地仓储的commit, 包括所有branchcommit, 甚至包括已经撤销的commit, 只要HEAD发生了变化, 就会在reflog里面看得到. git log只包括当前分支的commit

5.3 标签:

命令 作用
git tag 列出现在所有的标签
git tag v1.5 创建一个轻量级标签的话,就直接使用git tag命令即可,连-a,-s以及-m选项都不需要,直接给出标签名字即可
git tag -l "v1.4.2.*" 使用特定的搜索模式列出符合条件的标签,例如:这个命令是只对1.4.2系列的版本感兴趣
git tag -a v1.4 -m "my version 1.4" 创建一个含附注类型的标签,需要加-a参数
git show v1.4 使用git show命令查看相应标签的版本信息,并连同显示打标签时的提交对象
git tag -s v1.5 -m "my signed 1.5 tag" 如果有自己的私钥,可以使用GPG来签署标签,只需要在命令中使用-s参数
git tag -v v1.5 验证已签署的标签
git push origin v1.5 将标签推送到远程仓库中
git push origin --tags 将本地所有的标签全部推送到远程仓库中

5.4 分支管理:

命令 作用
git branch [branch-name] 创建分支
git checkout [branch-name] 从当前所处的分支切换到其他分支
git checkout -b [branch-name] 新建并切换到新建分支上
git push origin local_branch:remote_branch 创建远程分支,建立在本地分支的基础上
git branch -d [branch-name] 删除分支
git merge [branch-name] 将当前分支与指定分支进行合并
git branch 显示本地仓库的所有分支
git branch -v 查看各个分支最后一个提交对象的信息
git branch --merged 查看哪些分支已经合并到当前分支
git branch --no-merged 查看当前哪些分支还没有合并到当前分支
git merge [remote-name]/[branch-name] 把远程分支合并到当前分支。 如果是单线的历史分支不存在任何需要解决的分歧,只是简单的将HEAD指针前移,所以这种合并过程可以称为快进(Fast forward),而如果是历史分支是分叉的,会以当前分叉的两个分支作为两个祖先,创建新的提交对象;如果在合并分支时,遇到合并冲突需要人工解决后,再才能提交
git checkout -b [local_branch-name] [origin-name]/[remote_branch-name] 在远程分支的基础上创建新的本地分支,而后便可拉取该分支代码
git pull 在跟踪分支上,拉取远程仓库的变化,并与本地分支合并
git rebase 可以对某一段线性提交历史进行编辑、删除、复制、粘贴,可以把本地未push的分叉提交历史整理成直线。 使用rebase操作应该遵循的原则是:一旦分支中的提交对象发布到公共仓库,就千万不要对该分支进行rebase操作。
git rebase -i [startpoint] [endpoint] -i的意思是--interactive,即弹出交互式的界面让用户编辑完成合并操作,[startpoint]和[endpoint]则指定了一个编辑区间,如果不指定[endpoint],则该区间的终点默认是当前分支HEAD所指向的commit(注:该区间指定的是一个前开后闭的区间)。 如:git rebase -i 36224dbgit rebase -i HEAD~3
git rebase [rebase-branch] [branch-name] git rebase master server,将特性分支server提交的改变在基底分支master/main上重演一遍
git rebase [startpoint] [endpoint] --onto [branchName] 即将某一段commit粘贴到另一个分支上。 [startpoint]和[endpoint]仍然和上一个命令一样指定了一个编辑区间(前开后闭),--onto的意思是要将该指定的提交复制到哪个分支上
git branch --set-upstream-to=origin/remotebranch localbranch 将远程分支与本地分支建立关联

6. 本地仓库上的操作(Local Repository):

命令 作用
git remote 查看本地仓库关联的远程仓库
git remote add [remote-name] [url] 添加远程仓库,一般会取一个简短的别名
git fetch [remote-name] 从远程仓库中抓取本地仓库中没有的更新。 使用fetch只是将远端数据拉到本地仓库,并不自动合并到当前工作分支,只能人工合并。 如果设置了某个分支关联到远程仓库的某个分支的话,可以使用git pull来拉去远程分支的数据,然后将远端分支自动合并到本地仓库中的当前分支
git push [remote-name] [remote-branch] 推送分支代码
git push [remote-name] [local-branch]:[remote-branch] 将本地分支推送到远程仓库的不同名或同名分支
git push [romote-name] :[remote-branch],或者git push origin --delete dev 删除远程分支。 如git push origin :serverfix,这里省略了本地分支,也就相当于将空白内容推送给远程分支,就等于删掉了远程分支。
git branch -D dev 删除本地分支
git push git push的一般形式为:git push <远程主机名> <本地分支名> <远程分支名> 。 如果当前分支只有一个远程分支,那么主机名都可以省略,形如 git push,可以使用git branch -r ,查看远程的分支名
git remote rename [old-name] [new-name] 修改某个远程仓库在本地的简称
git remote rm [remote-name] 移除远程仓库

7. 忽略文件.gitignore:

命令 作用
*.a 忽略所有.a结尾的文件
!lib.a lib.a 除外
/TODO 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ 忽略 build/ 目录下的所有文件
doc/*.txt 忽略 doc/notes.txt但不包括 doc/server/arch.txt
doc/**/*.txt 忽略 doc/ 目录下所有扩展名为.txt的文件

【Git】Git基本操作详解相关推荐

  1. Git客户端图文详解如何安装配置GitHub操作流程攻略

    Git客户端图文详解如何安装配置GitHub操作流程攻略 软件应用 爱分享  3个月前 (08-15)  8896浏览  0评论 Git介绍 分布式 : Git版本控制系统是一个分布式的系统, 是用来 ...

  2. git checkout 命令详解—— Git 学习笔记 16

    git checkout 命令详解 概览 git checkout 这条命令的常用格式如下: 用法一 git checkout [<commit>] [--] <paths> ...

  3. git reset 命令详解(二)—— Git 学习笔记 08

    git reset 命令详解(二) 上一篇博文git reset 命令详解(一)讲了 git reset 命令的基本原理和用法,这篇博文谈一谈 git reset 的另一种用法--后面跟一个路径(或文 ...

  4. git reset 命令详解(一)—— Git 学习笔记 07

    git reset 命令详解(一) 简而言之,git reset 命令是用来将当前 branch 重置到另外一个 commit 的,这个动作可能同时影响到 index 以及 work director ...

  5. git diff命令详解

    git diff命令详解 diff里面a表示前面那个变量,b表示第二个变量 HEAD     commit版本 Index     staged版本 a.查看尚未暂存的文件更新了哪些部分,不加参数直接 ...

  6. Git的原理详解与使用-臧雪园-专题视频课程

    Git的原理详解与使用-3人已学习 课程介绍         2018 Git的原理详解与使用视频教程,该课程主要从四个部分进行讲解:第一部分主要讲解了Git的基本使用.比如安装和git基本命令使用, ...

  7. Git 常用命令详解

    Git 常用命令详解 1. Git 常用命令 1.1 常用git 命令图表汇总 1.2 配置个人信息 1.3 创建版本库 1.4 常用Git命令汇总 2. Git 解决代码冲突 3. Git 分支管理 ...

  8. git log 命令详解

    git log 命令详解 git log 命令用于查看提交历史: git log [options] [<file> <commit> <tag>...] 如果不加 ...

  9. 运维之道 | Git log 命令详解

    Git log 命令详解 Git log 可以让我们查看提交commit history [root@localhost villian]# git log commit 7a690b414f87fb ...

  10. git reset 命令详解 git revert命令详解。

    git reset 命令详解 reset命令 介绍 参数 补救 git revert命令 revert说明 举例: 命令 reset命令 介绍 git reset 命令格式为: git reset [ ...

最新文章

  1. android 网络调试 源代码,一个步骤教你调试Android系统源代码
  2. 离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(上:Windows环境中)
  3. 关于wcf三大工具的使用(wsdl.exe svcutil.exe disco.exe)
  4. linux用户和群组的作用,linux中的用户、群组和权限
  5. 如何为JBoss Developer Studio 8设置集成和SOA工具
  6. Python实现GitBook工具
  7. UVa——110303 Common Permutation(字符串)
  8. nginx 完全关闭 access_log
  9. C# MSchart图表控件安装与使用
  10. Android四大组件(activity task stack)
  11. CS229 笔记-1
  12. JAVA看云判断天气_看云,能否“识”天气?
  13. 整型常量是整数类型的数据
  14. 4核处理器_最便宜的16核洋垃圾怎么样?建议别买
  15. Vue 爬坑之旅 -- 用自定义指令解决 IOS 12 中键盘收起后页面底部有留白的问题
  16. vue 环境配置.env;.env.development;.env.production配置
  17. 玛格丽特·米德2019下半年EI会议与人格理论初探
  18. IP67 | IP58 防护等级理解
  19. cocos2dx layer理解
  20. linux打包文件夹命令

热门文章

  1. 被骂垃圾货,却卖出8000万副,干翻国外大牌!这个产品杀手凭什么?
  2. 现男友代言!最强自拍手机荣耀20S正式发布:售价1899元起
  3. 假的!微信上询问商品会被封号 微信朋友圈公布1月份十大谣言
  4. 入驻商户卖隐形眼镜护理液 饿了么遭监管警告
  5. 谈软件测试---一年测试工作总结
  6. 晨哥真有料丨为什么越优秀的女生越寡?
  7. redis订阅怎么退出_关于redis,学会这8点就够了
  8. android 传递接口对象吗,android中Intent传递对象,需要实现Serializable接口或者Parcelable接口...
  9. Golang实践录:oracle数据库实践
  10. Maven常见警告解决办法