IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 使用Git常用命令 -> 正文阅读

[开发工具]使用Git常用命令

主要参考自链接:
https://git-scm.com/docs
https://www.runoob.com/git/git-basic-operations.html
http://marklodato.github.io/visual-git-guide/index-zh-cn.html
https://www.cnblogs.com/miracle77hp/articles/11163532.html
https://www.cnblogs.com/cb0327/p/5066685.html
https://blog.csdn.net/u013276277/article/details/82470177/
https://www.cnblogs.com/wangrenmeng/p/10430369.html

一、Git配置:

Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量,这些环境变量,决定了 Git 在各个环节的具体工作方式和行为,可以存放在以下三个不同的地方:

  • /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
  • ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
  • 当前项目的Git目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖/etc/gitconfig 中的同名变量。

git config --list:查看配置信息。
git config --global merge.tool vimdiff:更改差异分析工具为vimdiff
配置个人的用户名称和电子邮件地址:

git config --global user.name "xxxname"
git config --global user.email "xxx@email.cn"

二、基本操作:

在这里插入图片描述

2.1 创建仓库

git init:在目录中创建新的 Git 仓库,ls .git/可查看仓库信息,所有有关项目的快照数据都存放在其中。
git clone [url]:拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。

2.2 查看修改

绿色的5位字符表示提交的ID,分别指向父节点。分支用橘色显示,分别指向特定的提交。当前分支由附在其上的HEAD标识。 这张图片里显示最后5次提交,ed489是最新提交。 main分支指向此次提交,另一个stable分支指向祖父提交节点。
在这里插入图片描述

git status:查看文件、目录在工作区间和暂存区中的状态。
git diff:命令用于比较工作区和缓存区的区别。
git diff –cached:比较的缓存区和本地仓库的区别。
git diff <commit>:查看工作目录同本地仓库指定commit的内容的差异,<commit>=HEAD时:查看工作目录同最近一次commit的内容的差异。
git diff <commit> <commit>:本地仓库任意两次commit之间的区别。

2.3 提交代码

  • git add [file1] [file2] ...:将工作区文件或目录提交到暂存区。
  • git commit [file1] [file2] ... -m [message]:给暂存区域生成快照并提交至本地仓库,[message] 可以是一些备注信息。
    git commit -a-a 参数设置修改文件后不需要执行 git add 命令,直接提交至本地仓库。
  • git push <远程主机名> <本地分支名>:<远程分支名>:从将本地的分支版本上传到远程并合并,如git push origin master:refs/for/master,即是将本地的master分支推送到远程主机origin上的对应的master分支。
  • 使用一次新的 commit,替代上一次提交,提交至远程仓库也可以修改:
    git commit --amend [file1] ...: 有时你提交过代码之后,发现一个地方改错了,你下次提交时不想保留上一次的记录,或者你上一次的 commit message 的描述有误,这时候你可以使用接下来的这个命令,如果打算把暂存区所有的文件都提上去,可以不用加[file1],提交完后再使用git push origin HEAD:refs/for/larch64推上远程仓库。

2.4 更新代码

  • git pull <远程主机名> <远程分支名>:<本地分支名>:更新远程仓库中的代码到本地工作区间,如git pull origin master:brantest,将远程主机 originmaster 分支拉取过来,与本地的 brantest 分支合并,如果远程分支是与本地的当前分支合并,则冒号后面的部分可以省略。
    git pull = git fetch + git merge
    
  • git fetch <远程主机名> <分支名>:将远程主机的最新内容拉到本地仓库,用户在检查了以后决定是否合并到工作区间分支中。
    git merge [branch]:合并指定分支到当前分支。
    #从远程仓库更新代码,到本地仓库
    [loongson@bogon luajit]$ git fetch origin larch64
    来自 ssh://rd.loongson.cn:29418/luajit
     * branch            larch64    -> FETCH_HEAD
    [loongson@bogon luajit]$ git merge FETCH_HEAD
    更新 bbb6188..644fafd
    Fast-forward
     src/lib_jit.c            | 2 +-
     src/lj_asm_loongarch64.h | 6 +++---
     src/lj_jit.h             | 6 +++---
     src/vm_loongarch64.dasc  | 5 +++++
     4 files changed, 12 insertions(+), 7 deletions(-)
    
     #或者使用以下方式:
     git fetch origin larch64:temp #temp是本地在创建一个临时分支
     git diff temp #查看从远程拉下来的分支和当前所在分支的异同,如果有冲突要修改
     git merge temp #合并temp分支到当前分支
     git branch -d temp #删除临时分支
    

2.5 版本回退或代码撤销

checkout命令用于从历史提交(或者暂存区域)中拷贝文件到工作目录,也可用于切换分支。

  • git checkout -b 本地分支名 origin/远程分支名:将远程git仓库里的指定分支拉取到本地(本地不存在的分支)。
  • git checkout -- files:(暂存区 -> 工作区间)工作区间修改了文件,但是还没有提交到暂存区,可用该命令把文件从暂存区域复制到工作目录,用来丢弃本地修改。

reset命令把当前分支指向另一个位置,并且有选择的变动工作目录和索引。也用来在从历史仓库中复制文件到索引,而不动工作目录。如果不给选项,那么当前分支指向到那个提交。如果用--hard选项,那么工作目录也更新,如果用--soft选项,那么都不变。

  • git reset HEAD file:(本地仓库 -> 暂存区)工作区中修改了文件且git add到暂存区,但是尚未commit,可用该命令把提交至暂存区的文件撤销,重新放回工作区,也可以用git reset 撤销所有暂存区域文件。
  • git reset --hard HEAD^ file:回退工作区中的文件到提交至本地仓库中的上一个提交版本。
    HEAD:最新提交
    HEAD^:上一个提交版本
    HEAD^^:上上一个提交版本
    HEAD~10:往上10个版本
    

三、查看提交历史信息:

  • git log [<options>] [<file>]:查看历史提交记录。
    --stat:显示commit历史,以及每次commit发生变更的文件,如git log --stat lj_emit_mips.h
    -S [keyword]:根据关键字搜索提交历史
    -5 --pretty --oneline:显示过去5次的提交记录
  • git blame <file>:以列表形式查看指定文件每一行代码的历史修改记录。

四、分支管理:

4.1 列出分支

git branch:列出所有本地分支。
git branch -r:列出所有远程分支。
git branch -a:列出所有本地分支和远程分支

4.2 新建分支

git branch [branch-name]:新建一个分支,但是依旧停留在当前分支
git checkout -b [branch]:新建一个分支,并切换到该分支
git branch [branch] [commit]:新建一个分支,指向指定commit
git branch --track [branch] [remote-branch]:新建一个分支,与指定的远程分支建立追踪关系

4.3 切换分支

切换到指定分支的时候,Git会用该分支的最后提交的快照替换你工作目录的内容, 所以多个分支不需要多个目录。
git checkout -:切换到上一个分支。
git checkout [branch-name]:切换到指定分支。

4.4 合并分支

merge 命令把不同分支合并起来。合并前,索引必须和当前提交相同。如果另一个分支是当前提交的祖父节点,那么合并命令将什么也不做。 另一种情况是如果当前提交是另一个分支的祖父节点,就导致fast-forward合并。指向只是简单的移动,并生成一个新的提交。否则就是一次真正的合并。默认把当前提交(ed489 如下所示)和另一个提交(33104)以及他们的共同祖父节点(b325c)进行一次三方合并。结果是先保存当前目录和索引,然后和父节点33104一起做一次新提交。
在这里插入图片描述

步骤为:先合并->解决冲突->git add 冲突文件至暂存区->git commit至本地仓库->git push至远程仓库
git merge [branch]:合并指定分支到当前分支

4.5 删除分支

Git会自行负责分支的管理,所以当我们删除一个分支时,Git只是删除了指向相关提交的指针,但该提交对象依然会留在版本库中。
git branch -d [branch-name]:删除一个没有被打开的分支
git branch -D <branch_name>:删除一个正打开的分支
git branch <branch_name> <hash_val>:在已知提交的散列值的情况下恢复某个分支

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-12-16 17:53:15  更:2021-12-16 17:55:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:02:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码