关山难越,谁悲失路之人;萍水相逢,尽是他乡之客。
百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程教程 > 技术文章 > 正文

工作7年收集到的git命令

guanshanw 2023-10-07 12:10 46 浏览 0 评论

概念

git 中的术语解释:

  • 仓库也叫版本库(repository)
  • stage:暂存区,add 后会存到暂存区,commit 后提交到版本库

git 安装

linux 下安装 git

  • 第一种方法:yum install git-core 安装的版本比较老
  • 第二种方法:(我是 linux centos)
    • 卸载老版本
yum remove git
    • 安装依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc

 yum install gcc perl-ExtUtils-MakeMaker
    • 执行安装
wget https://github.com/git/git/archive/v2.2.1.tar.gz
tar -zxvf v2.2.1
cd git-2.2.1
make configure
./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv
make
make install
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
source /etc/bashrc

初始化一个仓库用

  1. 先新建一个文件夹 mkdir test
  2. 进入该文件夹执行 git init 命令,就能初始化仓库了

命令合集

提交相关

添加文件到仓库(实际就是把工作区的内容添加到暂存区)

git add <file>

提交代码(就是把暂存区的内容提交到当前分支)

git commit -m "说明"

强制提交,比如用旧版本覆盖老版本时原本会报错,就可以用下面的命令

git push -f origin master

查看提交历史

git log

记录着操作命令,也就是命令历史

git reflog

将现有工作区的隐藏起来(一个分支开发到一半,代码还不能提交,但是需要切换到别的分支去看看代码时可以使用)

git stash

恢复隐藏的工作区

git stash pop

清空隐藏的工作区

git stash clear
git stash drop stash@{0} 删除第一个队列

查看隐藏的工作区的内容

git stash list

指定恢复哪一个隐藏的工作区内容

git stash apply stash@{0}

提交时忽略指定文件

  • 在.gitignore 中写要忽略的文件名即可
  • 如果已经使用过 add 命令了,那么要先执行 git rm -r --cached .
  • 然后再使用 add . 才能加入忽略规则

合并分支时合为一次提交

git merge --squash dev

取消命令
取消 rebase

git rebase --abort

取消提交了的内容

git reset --soft HEAD^

清除缓存/清除已经推上去的不要的文件

git rm -r --cached . //需要完整复制

清除推上去的 idea 相关文件

git rm --cached -r .idea

撤销相关

将工作区的修改撤销掉

git checkout -- a.txt (注意:--很重要,如果没有--,这个命令就变成了切换分支)

这个撤销会有两种效果:

第一种是修改后没有放到暂存区,那么撤销后会回到和版本库一样的状态

第二种是修改后放入了暂存区,又做了修改,那么撤销后会回到和暂存区一样的状态。

总之,就是让这个文件回到最近一次 git commit 或 git add 时的状态。

将暂存区的修改撤销掉

git reset HEAD file

代码回退 (提交一次就有一个版本,HEAD 表示当前版本,HEAD^表示上一个版本,HEAD~10 表示前第 100 个版本)

git reset --hard HEAD^ //回退到上一个版本

代码回退之后还可以前进,只要知道前一个版本的版本号

git reset --hard 3628164 //版本号不用写全,前几位即可

如果删除了文件,想让版本库里的文件也删掉

#第一步
git rm -- a.txt
#第二步
git commit -m ""

想让工作区删除的文件恢复

git checkout -- a.txt

撤销新增的文件

rm filename / rm dir -rf //单个文件
git clean -xdf //所有文件

远程库推送相关

关联远程库

git remote add origin git@github.com:mmcLine/firstGit.git

取消关联取消关联

git remote remove origin

第一次推送信息

git push -u origin master

不是第一次推送信息

git push origin master

查看远程库的信息

git remote
# 更详细的信息
git remote -v

推送远程仓库有冲突的处理

git push origin dev #发现失败,有冲突
git pull #把最新的提交抓下来(git pull如果失败运行 git branch --set-upstream dev origin/dev)
# 在合并,如果有冲突就手动解决后在提交

更新远程库的代码

git fetch origin
git rebase origin

克隆代码(仅克隆最近的一次提交记录的最新版本)

git clone url --depth=1

分支相关

创建分支

git branch <name>

切换分支

git checkout dev

创建并切换分支

git checkout -b dev

查看当前分支

git branch

把 dev 分支合并到 master 上

git merge dev

删除分支

git branch -D dev

查看提交的分支表

git log --graph

禁用 Fast forward 的合并,禁用后每次都会有新的提交

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

仅合并某次提交

# commitid是提交的id
git  cherry-pick commitid

其他

设置 git 操作命令的别名

 git config --global alias.st status 将git status 设置别名为git st

配置文件在.git 里面的 config 里面,或者对应用户的家目录的.gitconfig 里面

  • 删除别名就在文件里删除别名就好了

github 相关操作

1、从 github 下载代码

git clone git://github.com/mmcLine/firstGit.git
# 也可使用https
git clone https://github.com/mmcLine/firstGit.git

2、推送代码到 github

修改了代码之后先

git add test.txt
git commit -m "test"
git push -u origin master 第一次推送命令
git push origin master 以后的推送命令

创建项目并关联

1、先在服务器上创建一个文件夹

2、然后在文件夹下运行 git init --bare

3、在本地创建一个仓库

4、然后关联远程库

git remote add origin root@192.168.128.190:/data/git/tofocus

5、然后上传本地项目

遇到的错误

1、添加远程配置时出现 fatal: 远程 origin 已经存在。提示

处理方法:git remote rm origin

2、从 github 克隆时报这个错误 while accessing https://github.com/mmcLine/gitskills.git/info/refs

处理方法: git 的版本太低了,我之前是 yum 安装了,我卸载了用源码安装就好了

3、处理冲突:

  1. 更改冲突的地方
  2. 在 git gui 里面把冲突的类点一下

  1. 让上面那个区域的类都没有了。
  2. 然后 git rebase --continue

相关推荐

七条简单命令让您玩转Git
七条简单命令让您玩转Git

凭借着出色的协作能力、快速部署效果与代码构建辅助作用,Git已经得到越来越多企业用户的青睐。除了用于开发商业及消费级应用之外,众多科学及政府机构也开始尝试使用这...

2023-10-07 12:14 guanshanw

基本完整的关于Git分支branch的操作
基本完整的关于Git分支branch的操作

Git使用背景项目中要用到dev或者其他分支开发完代码,需要将该分支合并到master的需求操作步骤下面以dev名称为lex为分支名为例来操作一遍客户端操作:...

2023-10-07 12:14 guanshanw

Git 进阶(合并与变基)
Git 进阶(合并与变基)

在Git中整合来自不同分支的修改主要有两种方法:合并(merge)以及变基(rebase)合并(merge)merge流程图merge的原理是找到这两个分...

2023-10-07 12:13 guanshanw

Git学习笔记 003 Git进阶功能 part5 合并(第一部分)

合并(merge)是很常用的操作。尤其是一个庞大的很多人参与开发的企业级应用。一般会设定一个主分支,和多个副分支。在副分支开发完成后,合并到主分支中。始终保持主分支是一个完整的,稳定的最新状态的分支。...

非标题党,三张图帮你理解git merge和git rebase的区别
非标题党,三张图帮你理解git merge和git rebase的区别

初始场景:基于正常的开发分支修改几个小bug,然后在合并到开发分支上。gitmergegitcheckoutfeaturegitmergeho...

2023-10-07 12:13 guanshanw

git 初次使用(01)
git 初次使用(01)

先从github上克隆代码下来:使用vscode克隆代码如下图,填写上github仓库地址:vscode有时候克隆代码速度比较慢,可以用命令行方式克隆gitc...

2023-10-07 12:12 guanshanw

Git 远程操作

4.Git远程操作命令说明gitremote远程版本库操作gitfetch从远程获取版本库gitpull下载远程代码并合并gitpush上传远程代码并合并4.1远程版本库操作gitre...

Git常用命令-总结
Git常用命令-总结

创建git用户$gitconfig--globaluser.name"YourName"$gitconfig--globaluser.em...

2023-10-07 12:12 guanshanw

git中删除从别人clone下来项目的git信息,并修改为自己的分支

如果你从别人的Git存储库中克隆了一个项目,并想要删除与该存储库相关的Git信息,并将其修改为你自己的分支,则可以执行以下步骤:使用gitclone命令克隆存储库:gitclone<u...

git系列-回滚和放弃本地修改

回滚历史提交就是reset的功能。这种情况是已经提交远程仓库,需要回滚到之前的提交。gitreset--hardcommitId//注:强制提交后,当前版本后面的提交版本将会删掉!gi...

GIT使用小技巧大全
GIT使用小技巧大全

在大型软件工程的开发过程中,版本控制是无法绕过去的;目前来说,最火的版本控制软件就是GIT了。早两年SVN比较火,不过被大神linus喷了几次后,就日落西山了,...

2023-10-07 12:11 guanshanw

git相关命令-上
git相关命令-上

这些命令都是看了文档后,个人觉得比较有用的一些,展示给大家。回到远程仓库的状态抛弃本地所有的修改,回到远程仓库的状态。gitfetch--all&...

2023-10-07 12:10 guanshanw

Git命令行接口:掌握Git的必备技能
Git命令行接口:掌握Git的必备技能

Git是一款强大的分布式版本控制工具,它支持命令行界面操作。熟练掌握Git命令行接口,是开发者使用Git的必备技能之一。在这篇文章中,我们将介绍Git命令行接口...

2023-10-07 12:10 guanshanw

Git命令详解
Git命令详解

相信各位小伙伴们应该都对git有一些了解,毕竟作为代码管理的神器,就算不是IT行业的小伙伴肯定也或多或少的听说过一些。今天就来和小伙伴们分享一下自己总结的常用命...

2023-10-07 12:10 guanshanw

工作7年收集到的git命令
工作7年收集到的git命令

概念git中的术语解释:仓库也叫版本库(repository)stage:暂存区,add后会存到暂存区,commit后提交到版本库git安装linux...

2023-10-07 12:10 guanshanw

取消回复欢迎 发表评论: