Git 指令

Git 安装 · 操作 · 命令行

简介:

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

在这里插入图片描述

  • Workspace:工作区(就是你在电脑里能看到的目录)

  • Index / Stage:暂存区(一般存放在 “.git 目录下” 下的 index 文件(.git/index)中)

  • Repository:仓库区(或本地仓库)

  • Remote:远程仓库

安装:

  1. 源码安装:源码包下载地址:https://git-scm.com/download

    #安装指定系统的依赖包:
    ########## Centos/RedHat ########## 
    $ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel ########## Debian/Ubuntu ########## 
    $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev#解压安装下载的源码包:
    $ tar -zxf git-1.7.2.2.tar.gz 
    $ cd git-1.7.2.2 
    $ make prefix=/usr/local all 
    $ sudo make prefix=/usr/local install
    
  2. Window 安装:安装包下载地址:https://gitforwindows.org/

    完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。 
    在开始菜单里找到"Git"->"Git Bash",会弹出 Git 命令窗口,你可以在该窗口进行 Git 操作。
    
  3. Ubuntu安装:

    $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev 
    $ apt-get install git 
    $ git --version
    

基本信息:

  1. 查看版本:

    $ git --version
    git version 2.22.0.windows.1
    
  2. 查看用户信息:

    #当前登入用户:
    $ git config --global user.name
    Zhangsl#用户邮箱:
    $ git config --global user.email
    547125836@qq.com
    
  3. 设置用户信息:

    #设置用户名:不要‘’
    $ git config --global user.name 'new_name'$ git config --global user.name Nepalese
    $ git config --global user.name
    Nepalese#设置邮箱:
    $ git config --global user.email 'xxx@qq.com'
    
  4. 查看已有配置:

    $ git config --list
    core.symlinks=false
    core.autocrlf=true
    core.fscache=true
    color.diff=auto
    color.status=auto
    ...
    

仓库信息:

  1. 初始化仓库:

    #使用当前目录作为 Git 仓库,文件夹下初始化一个仓库
    $ git init#使用我们指定目录作为 Git 仓库
    $ git init path
    
  2. 查看仓库:

    #本地所有分支:
    $ git branch
    * master#本地和远程所有分支:
    $ git branch -a
    * masterremotes/origin/master#远程所有分支:
    $ git branch -rorigin/master#查看在你上次提交之后是否有修改
    $ git status -s
    On branch master
    Your branch is up to date with 'origin/master'.Untracked files:(use "git add <file>..." to include in what will be committed)gitnothing added to commit but untracked files present (use "git add" to track)
    
  3. 分支管理:

    #创建分支:temp8023
    $ git branch temp8023$ git branch
    * mastertemp8023#切换分支:
    $ git checkout temp8023
    Switched to branch 'temp8023'#创建并切换分支:name
    $ git checkout -b name#删除本地分支:temp8023
    $ git branch -d temp8023
    Deleted branch temp8023 (was 781f2e3).$ git branch
    * master#删除远程分支:name
    $ git push origin :name#合并分支:(本地和远程)
    $ git merge name
    $ git merge origin/name
    
  4. 文件管理:

    #添加到暂存区:(文件绝对路径/或在当前目录下)
    $ git add E:\ZSLWORK\AndroidStudio\ToolLibs\app\src\main\res\drawable\img_test.jpg#错误例子
    $ git add drawable/img_test.jpg
    fatal: pathspec 'drawable/img_test.jpg' did not match any files#删除本地文件:img_test.jpg(已添加到暂存区)
    $ git rm E:\ZSLWORK\AndroidStudio\ToolLibs\app\src\main\res\drawable\img_test.jpg
    error: the following file has changes staged in the index:app/src/main/res/drawable/img_test.jpg
    (use --cached to keep the file, or -f to force removal)$ git rm -f E:\ZSLWORK\AndroidStudio\ToolLibs\app\src\main\res\drawable\img_test.jpg
    rm 'app/src/main/res/drawable/img_test.jpg'#移动或重命名
    $ git mv 'oldName' 'newName'
    
  5. 克隆项目:(类似 svn checkout

    $ git clone <repo>#克隆到指定的目录
    $ git clone <repo> <directory>#克隆远程项目:
    $ git clone git://github.com/schacon/grit.git#repo:Git 仓库
    #directory:本地目录。
    

拉取与提交:

  1. 提交到分支:

    $ git commit -m "notice"$ git commit -m "add a image"
    [master 70f1eba] add a image1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 app/src/main/res/drawable-v24/img_bg_app4.jpg
    
  2. 推送到远程:

    #需要登入
    $ git push origin masterEnumerating objects: 14, done.
    Counting objects: 100% (14/14), done.
    Delta compression using up to 8 threads
    Compressing objects: 100% (8/8), done.
    Writing objects: 100% (8/8), 102.02 KiB | 34.01 MiB/s, done.
    Total 8 (delta 5), reused 0 (delta 0)
    remote: Resolving deltas: 100% (5/5), completed with 5 local objects.
    To https://github.com/IloveJavaCoding/ToolLibs.gitb866012..70f1eba  master -> master
    

取消缓存:(绿色状态 --> 红色)

#执行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的缓存
$ git reset HEAD 'fileName' Unstaged chnages after reset:#".idea"就是要删除的文件夹名称
$ git rm -r --cached .idea
删除项目git:
1. 删除工程文件夹中的.git文件夹;
2. setting---versioncontrol中 点击减号, 删除;

查看提交历史:

$ git log
commit 9fa7fd35128340bf35172e15bf8ef85f250b5964 (HEAD -> Nepalese)
Author: Nepalese <547125836@qq.com>
Date:   Mon Jul 13 16:40:34 2020 +0800:...skipping...
commit 9fa7fd35128340bf35172e15bf8ef85f250b5964 (HEAD -> Nepalese)
Author: Nepalese <547125836@qq.com>
Date:   Mon Jul 13 16:40:34 2020 +0800#简洁版本
$ git log --oneline
9fa7fd3 (HEAD -> Nepalese) in the second screen only use textureView
887cc17 for program, replace surfaceView by textureView then according the current state to adjust the orientation of screen
747bae2 renderTee adjust second screen add cover image adjust stop page
ae687a1 renderTee adjust second screen add cover image adjust stop page
86fe829 (origin/Nepalese) use renderTee to control second screen
e7fcbb8 set release version configuration

**标签:**希望永远记住那个特别的提交快照(给最提交打上标签) [指向某个 commit 的指针]

#-a 选项意为"创建一个带注解的标签"
$ git tag -a 'tagName'#查看标签
$ git log --decorate#追加标签  85fc7e7 -> commit 号
$ git tag -a 'tagName' '85fc7e7'

退出Git 的Vim:

'c' --> 打开编辑模式;
按下'Esc' 退出编辑状态,再按住'Shift', 连按两次'z'。

小知识:按 ‘q’ 退出当前Git 指令。

参考资料:

https://blog.csdn.net/zhaoyanjun6/article/details/70332707

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/447638.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络协议与攻击模拟_14DNS欺骗

DNS欺骗就是利用某种方式将我们访问的域名解析到其他服务器上&#xff0c;从而使得我们无法正常访问到原本我们想要访问的网站。 一、DNS欺骗过程 首先在windows server 2016虚拟机上搭建网站服务&#xff0c;kali作为攻击机从而实现中间人攻击&#xff0c;使用ettercap工具的…

python中的可变与不可变、深拷贝和浅拷贝

个人猜想&#xff08;很遗憾失败了&#xff09; 在硬盘或者系统中存在一个字符集 如果存在硬盘中&#xff0c;那么硬盘出厂的时候他的字符集所占用的空间就已经确定了。 如果存在于系统的话&#xff0c;硬盘应该在出厂的时候为系统设置一个存储系统字符集的地方。在安装系统…

SimpleDateFormat 格式化 Date 时间戳

前言 Date 是 Java 中经常用来表示时间的类型&#xff0c;但将 Date 类型的数据发送给前端时&#xff0c;通常会呈现出乱码的状态&#xff0c;用户不宜理解&#xff0c;所以要通过 SimpleDateFormat 把 Date 类型的数据格式化为用户容易理解的格式 如下是 Date 的格式&#xff…

【2024美赛E题】985博士解题思路分析(持续更新中)!

【2024美赛E题】985博士解题思路分析&#xff01; 加群可以享受定制等更多服务&#xff0c;或者搜索B站&#xff1a;数模洛凌寺 联络组织企鹅&#xff1a;936670395 以下是E题老师的解题思路&#xff08;企鹅内还会随时更新文档&#xff09;&#xff1a; 2024美赛E题思路详解…

北朝隋唐文物展亮相广西,文物预防性保护网关保驾护航

一、霸府名都——太原博物馆收藏北朝隋朝文物展 2月1日&#xff0c;广西民族博物馆与太原博物馆携手&#xff0c;盛大开启“霸府名都——太原博物馆北朝隋文物展”。此次新春展览精选了北朝隋唐时期150多件晋阳文物珍品。依据“巍巍雄镇”“惊世古冢”“锦绣名都”三个单元&am…

车载语音交互赛道研究:大模型揭幕2.0时代 商业模式重塑

大模型正给车载语音交互赛道带来颠覆性变革。 根据高工智能汽车研究院调研获取的信息&#xff0c;核心原因为&#xff1a;1.0时代&#xff0c;车载语音交互玩家可使用自身的小模型&#xff1b;2.0时代&#xff0c;很可能需基于通用大模型&#xff08;训练成本极为高昂&#xf…

【2024年美国大学生数学建模竞赛】F题非法的野生动物贸易 完整数据

小云更新了全网最全的F题数据 另外也为大家分享&#xff1a; 技术文档&#xff0c;包括问题分析、建立模型、求解结果等&#xff0c;配套有思路分析视频、代码讲解视频。美赛官方限制总页数为25页&#xff0c;我们的思路长度为35页以上。所有模型都有求解代码和指标&#xff0…

ManageEngine推出云原生身份平台以解决劳动力IAM挑战

ManageEngine推出云原生身份平台以解决企业员工身份与访问管理&#xff08;IAM&#xff09;面临的挑战。该公司还为其本地身份治理和管理&#xff08;IGA&#xff09;解决方案添加了先进的安全功能。 IAM 内置通用目录可在企业应用程序之间集中管理用户身份&#xff0c;使用身…

嵌入式系统设计师之存储管理

目录 一、Flat存储管理方式&#xff08;I&#xff09; 二、分区存储管理&#xff08;II&#xff09; 1、固定分区 2、可变分区 3、内存保护 三、地址重定位 (II) 1、逻辑地址 2、物理地址 四、页式存储管理 &#xff08;II&#xff09; 五、虚拟存储管理&#xff08;II&#x…

【c语言】简单贪吃蛇的实现

目录 一、游戏说明 ​编辑 二、地图坐标​ ​编辑 三、头文件 四、蛇身和食物​ 五、数据结构设计​ 蛇节点结构如下&#xff1a; 封装一个Snake的结构来维护整条贪吃蛇&#xff1a;​ 蛇的方向&#xff0c;可以一一列举&#xff0c;使用枚举&#xff1a; 游戏状态&a…

22.java-网络编程

网络编程 服务器介绍 ​ 服务器就是一台配置很高的电脑 互联网架构分类 BS架构 &#xff1a; Browser / Server ​ 优点&#xff1a;不需要下载客户端&#xff0c;使用起来非常方便。 ​ 缺点&#xff1a;用户体验比较差 CS架构 &#xff1a; Client / Server ​ 缺点…

数据结构——链表的一点小收获(内存指向)

1.整数变量赋值 a 2 b a b 3 结果&#xff1a; a 2 b 3 当给b重新赋值时&#xff0c;内存指向发生变换 2.链表之间的赋值与列表、字典相似&#xff0c;是内存指向的赋值 a [1] b a b[0] 2&#xff08;这里其实是修改变量值&#xff0c;如果改为b [2]则会改变…