首页 > 其他分享 >git常用命令

git常用命令

时间:2023-06-09 18:25:30浏览次数:40  
标签:文件 git -- stash dev 常用命令 分支

git学习小游戏:

https://learngitbranching.js.org/?locale=zh_CN

答案:略,自行百度

git中文文档:

https://git-scm.com/book/zh/v2

常用命令参考文档:

 https://liaoxuefeng.gitee.io/resource.liaoxuefeng.com/git/git-cheat-sheet.pdf

 

初次安装完成后的设置

git config --global user.name "Your Name"
git config --global user.email "[email protected]"

创建目录learngit,进入目录,显示目录

mkdir learngit
cd learngit
pwd

 初始化仓库,用 ls -ah 来查看初始化后默认隐藏的目录 .git

git init

基本概念:

工作区、暂存区、版本库

工作区(Working Directory):电脑中看到的目录

暂存区(stage): stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中

版本库(Repository):隐藏目录 .git,是 Git 的版本库,这个不属于工作区

 

把文件添加到仓库, 实际上就是把文件修改添加到暂存区

git add readme.txt

把文件提交到仓库,-m后面输入的是本次提交的说明,实际上就是把暂存区的所有内容提交到当前分支

git commit -m "wrote a readme file"

检查仓库当前的状态

git status

显示暂存区和工作区的差异

git diff

查看历史记录,最近到最远的提交日志,简化显示: git log --pretty=oneline

git log

git log --pretty=oneline

回退到上一个版本

git reset --hard HEAD^

查看文件内容

cat readme.txt

恢复以前版本,只需写前几位版本号即可,git的版本回退只是指针发生了变化

git reset --hard 1094a

查看历史的每一次命令

git reflog

查看工作区和版本库里面最新版本的区别

git diff HEAD -- readme.txt

把文件在工作区的修改全部撤销,两种情况:

1,readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态

2,readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态

git checkout -- readme.txt

把暂存区的修改撤销掉(unstage),重新放回工作区

git reset HEAD readme.txt

删除文件管理器中的文件

rm test.txt

从版本库中删除该文件

git rm test.txt

-----------------------------------------------------------------------------------------

远程仓库:

基本设置

创建SSH Key,在用户主目录下,查看有无.ssh目录,如果有,再看该目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。

在窗口中输入ll -d ~/.ssh也可以查询到.ssh目录的位置

如果没有,打开Git Bash,创建SSH Key:

ll -d ~/.ssh
ssh-keygen -t rsa -C "[email protected]"

 本地仓库关联远程仓库

git remote add origin [email protected]:michaelliao/learngit.git

初次把本地库的所有内容推送到远程库上

git push -u origin master

初次推送成功后,下一次只要本地作了提交,可以直接用下面命令推送

git push origin master

 查看远程库信息

git remote -v

删除远程库,解除了本地和远程的绑定关系,并非物理上删除了远程库

git remote rm origin

 从远程库克隆

git clone [email protected]:michaelliao/gitskills.git

 创建dev分支,然后切换到dev分支

git switch -c dev
git checkout -b dev
git branch dev git checkout dev git switch maste

查看当前分支

git branch

dev分支的工作成果合并到master分支上

git merge dev

删除dev分支

git branch -d dev

看到分支合并图

git log --graph
git log --graph --pretty=oneline --abbrev-commit

 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并

git merge --no-ff -m "merge with no-ff" dev

“储藏”工作现场

git stash

查看‘储藏’的工作现场

git stash list

恢复工作现场,方式一:用git stash apply恢复,恢复后,stash内容并不删除,需要用git stash drop来删除

git stash apply
git stash drop

恢复工作现场,方式二:恢复的同时把stash内容也删了

git stash pop

多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令

git stash apply stash@{0}

复制一个特定的提交到当前分支

git cherry-pick 4c805e2

强行删除没有合并的分支

git branch -D <name>

 拉取最新分支

git pull

指定本地dev分支与远程origin/dev分支的链接

git branch --set-upstream-to=origin/dev dev

切换到需要打标签的分支上,打新标签

git tag v1.0

查看所有标签

git tag

历史提交的commit id打标签

git log --pretty=oneline --abbrev-commit
git tag v0.9 f52c633

标签不是按时间顺序列出,而是按字母排序的

可以用git show <tagname>查看标签信息

git show v0.9

创建带有说明的标签,用-a指定标签名,-m指定说明文字

git tag -a v0.1 -m "version 0.1 released" 1094adb

注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。

 删除标签

git tag -d v0.1

推送某个标签到远程

git push origin v1.0

删除远程已经推送的标签,先从本地删除,再远程删除。删除命令也是push

git tag -d v0.9
git push origin :refs/tags/v0.9

------------------

忽略文件,配置文件在线浏览:https://github.com/github/gitignore

忽略文件的原则是:

  1. 忽略操作系统自动生成的文件,比如缩略图等;
  2. 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
  3. 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

 

-f强制添加到Git

git add -f App.class

检查某文件的忽略规则

git check-ignore -v App.class

把指定文件排除在.gitignore规则外的写法就是!+文件名,所以,只需把例外文件添加进去即可

# 不排除.gitignore和App.class:
!.gitignore
!App.class

通过https://gitignore.itranswarp.com在线生成.gitignore文件

 

配置别名,以后st就表示status

git config --global alias.st status

给命令git reset HEAD file配置一个unstage别名

git config --global alias.unstage 'reset HEAD'

配置一个git last,让其显示最后一次提交信息

git config --global alias.last 'log -1'

每个仓库的Git配置文件都放在.git/config文件中

cat .git/config

当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig

cat .gitconfig

 

标签:文件,git,--,stash,dev,常用命令,分支
From: https://www.cnblogs.com/jiushao-ing/p/17465829.html

相关文章

  • gitlab搭建私有化服务
    暂时还没有资源进行搭建,先看看记录一下调研信息。搭建流程:https://www.likecs.com/show-307842527.htmlhttps://blog.csdn.net/m0_46090675/article/details/120853935/gitlab下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/......
  • mac更新系统后git出现的一系列问题
    1.xcrun:error:invalidactivedeveloperpath(/Library/Developer/CommandLineTools),missingxcrunat:/Library/Developer/CommandLineTools/usr/bin/xcrun  1.解决方法:打开命令终端运行xcode-select--install回车后,系统弹出下载xcode组件,点击确认,下载完成后即......
  • linux常用命令2
    pwd命令 Linuxpwd(英文全拼:printworkdirectory)命令用于显示工作目录。 执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。 语法pwd[--help][--version]参数说明:--help在线帮助。--version显示版本信息。mkdir命令Linuxmkdir(英文全拼:makedi......
  • 使用 Obsidian + gitee 实现备份
    1.设置ssh 公钥    参考连接: 生成/添加SSH公钥-Gitee.com    win+r输入cmd,打开cmd 窗口    在窗口中,输入         ssh-keygen-ted25519-C"[email protected]"        [email protected]:尽量为自己的邮箱地址,  ......
  • Docker CLI docker diff 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • Git远程操作详解
    Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。gitclonegitremotegitfetchgitpullgitpush本文针对初级用户,从最简单的讲起,但......
  • git服务器端安装并和客户端git连接
    接下来我们将以Centos为例搭建Git服务器。1、安装Git$yuminstallcurl-develexpat-develgettext-developenssl-develzlib-develperl-devel$yuminstallgit接下来我们创建一个git用户组和用户,用来运行git服务:$groupaddgit$useraddgit-ggit2、创建证......
  • windows安装git和用法
    1、windows下载gitgit官网地址:https://git-scm.com/download/win/国内下载地址:https://registry.npmmirror.com/binary.html?path=git-for-windows/ 选择所需要的版本,进行下载。2、下载完成之后,双击下载好的exe文件进行安装。 3、默认是C盘,推荐修改一下路径(非中文并......
  • git 基本命令
     1、查看哪些文件有修改gitstatus 2、提交所有修改的文件gitadd.gitcommit-m"abcdefg更新了"gitpush 3、提交指定修改后文件上去gitadd"test.java"后面的跟2一样 ......
  • GitHub无法访问的解决方案
    1.情景展示 2.具体分析GitHub网站无法访问或者网页加载慢,都是网络问题造成的。我们访问某个网站,其实,是操作系统通过域名解析器(DNS解析器)解析域名拿到对应的IP地址,然后再去访问。 3.解决方案方案一:修改hosts文件hosts文件的作用是:配置在这里的域名,将不会走域名解析器,......