git常用命令

git简介

引用某位大佬的话,git是目前世界上最先进的分布式版本控制系统(没有之一)。git可以自动帮你记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了。在这里记住它的特点,分布式

1.安装git

1.1在Linux上安装git

$ sudo apt-get install git

1.2在mac上安装git

安装homebbrew,然后通过homebrew安装git,具体方法请参照brew.sh

1.3在Windows上安装git

在Windows上使用git,可以从git官网上直接下载安装教程,然后按照步骤安装。

安装完成后,需要进行全局的设置,在命令行输入:

$ git config --global user.name "your name"
$ git config --global user.email "your email"

2.本地仓库

2.1初始化本地仓库

$ mkdir yourProjectDir //创建一个本地的工程
$ cd yourProjectDir //移动到这个工程的主目录下
$ git init //初始化本地的git仓库

2.2提交到本地仓库及其常用操作

$ git add yourFileName //添加你需要提交的文件到暂存区
$ git commit -m "describe" //讲暂存区的内容提交到本地仓库

注意: 当需要提交到暂存区的文件较多时,可以使用

$ git add .

命令来追踪当前目录下的所有文件。

2.3查看当前git状态

$ git status

2.4查看某个文件的前后改动

$ git diff youFileName

2.4查看 commit 和 reset 历史日志

$ git log //查看commit版本log
$ git reflog //查看reset版本log

2.5版本回滚

$ git reset --hard HEAD^ //回滚上一个版本
$ git reset --hard HEAD^^ //回滚上一个的上一个版本
$ git reset --hard commitId //回滚到某个指定的版本(id可以只输入前几位)
$ git reset --hard HEAD~100 //回滚到之前第100个版本

2.6撤销修改

$ git checkout -- fileName //让这个文件回到最近一次git commit或git add时的状态

3.远程仓库

3.1克隆到本地

$ git clone git@github.com:michaelliao/learngit.git

3.2或者直接在本地建立与远程仓库的连接

$ git remote add origin git@github.com:michaelliao/learngit.git

3.3将本地库推送到远程仓库

$ git push -u origin master

-u参数的意义:git不仅会将本地master分支上的内容推送到远程master分支上,还会自动建立本地master分之和远程master分之的连接。

4.分支管理

4.1创建并切换分支

$ git checkout -b dev //-b参数表示创建并切换

等价于

$ git branch dev //创建分支
$ git checkout dev //切换分支

这两条命令。

4.2查看分支

$ git branch //查看所有分支以及当前所在分支

4.3切换分支

checkout切换:

$ git checkout dev //切换到dev分支

switch切换

$ git switch -c dev //创建并切换到dev分支
$ git switch dev //切换到已存在的dev分支

4.4合并分支

将dev分支合并到master分支

$ git checkout master //1.切换到master分支
$ git merge dev //2.将dev分支合并到master分支

4.5删除分支

$ git branch -d dev //删除dev分支

4.6禁用fast forward模式

合并分支时,如果可能,git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。

如果要强制禁用Fast forward模式,git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

合并dev分支,请注意–no-ff参数,表示禁用Fast forward

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

因为本次合并会创建一个新的commit,所以加上-m参数,把commit的描述写进去。

4.7常用的分支策略

实际开发中,我们应按照基本的分支策略进行开发
(1)master分支应该是非常稳定的,仅仅用来发布新的版本。平时不能在上面开发新的功能。——用来控制发布版本的分支
(2)dev分支是用来平时开发的分支。所有人都在dev分支上工作,有新的功能就合并到dev分支上。——用来平时开发的分支
(3)feature分支bug分支。这两个分支是控制在本地的分支,你平时根据需要在这两个分支开发新feature和修改bug的分支,一般不需要推送到远程仓库。——在本地使用的分支

4.8暂存某个feature分支

$ git stash //将当前分支未提交的工作区的内容暂存

查看stash列表(暂存列表):

$ git satsh list //查看stash列表,内容如下:
stash@{0}: WIP on dev: f52c633 add merge

恢复暂存内容:

$ git stash apply //恢复stash内容,但是stash并没有删除
$ git stash pop //恢复stash内容并删除stash

4.9复制某个分支的某次提交到当前分支

$ git cherry-pick 4c805e2 //将4c805e2这次commit复制到当前分支并且再本分支再commit一次 

5.多人协作

5.1推送分支

$ git push origin master //推送当前分支到远程master分支上(可用-u参数建立连接方便以后直接推送到该分支)
$ git push origin dev //推送当前分支到远程dev分支上(可用-u参数建立连接方便以后直接推送到该分支)

5.2 抓取分支

当你使用

$ git clone git@github... 

命令克隆到你本地时,理论上你只能看见master分支(使用git branch命令查看)。

想要在本地的dev分支上开发,就必须建立远程origin的dev分支到本地,使用:

$ git checkout -b dev origin/dev 

这个命令。现在你就可以在dev分支上工作并且推送本地dev分支到远程dev分支了。

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

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

6.标签

如果需要在master分支上打上版本标签,那么:

$ git switch master //1.切换到master分支
$ git tag v1.0 //2.创建一个v1.0的标签
$ git tag //查看所有标签

这种方式是将标签打在最近一次提交的commit上。

那,将标签打在之前指定的某个commit上,就是

$ git tag v0.9 f52c633 //f52c633是某次commit的id

查看某个标签的信息:

$ git show v0.9 //可以看到commit id和时间信息等

参数说明:

$ git tag -a v0.1 -m "version 0.1 released" 1094adb // -a 参数指定标签名,-m 参数指定说明文字
$ git tag -d v0.9 // -d 删除v0.9标签
$ git push origin v1.0 // 推送某个标签到远程
$ git push origin --tags //推送全部尚未推送到远程的本地标签

删除远程标签:

$ git tag -d v0.9 //1.先从本地删除
$ git push origin :refs/tags/v0.9  //2.然后,从远程删除。删除命令也是push

7.添加/删除远程

查看远程仓库:

$ git remote -v //或者直接使用git remote(-v参数可以查看详细信息)

添加远程仓库:

$ git remote add github/gitee git@git... //添加github远程仓库或者码云远程仓库

删除远程仓库:

$ git remote rm origin/github/gitee // origin、github或者gitee都是创建是远程仓库的名称然后,从远程删除。删除命令也是push

8.忽略文件

有时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件等。

git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

忽略文件的原则是:

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

然后需要把.gitignore文件也提交推送到远程。

可以用-f强制将已忽略的文件添加到git:

$ git add -f test.txt //用-f强制将已忽略的文件添加到git

//参考廖雪峰大神文章整理~

基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的Koopman算子的递归神经网络模型线性化”展开,旨在研究纳米定位系统的预测控制问题,并提供完整的Matlab代码实现。文章结合数据驱动方法与Koopman算子理论,利用递归神经网络(RNN)对非线性系统进行建模与线性化处理,从而提升纳米级定位系统的精度与动态响应性能。该方法通过提取系统隐含动态特征,构建近似线性模型,便于后续模型预测控制(MPC)的设计与优化,适用于高精度自动化控制场景。文中还展示了相关实验验证与仿真结果,证明了该方法的有效性和先进性。; 适合人群:具备一定控制理论基础和Matlab编程能力,从事精密控制、智能制造、自动化或相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能控制设计;②为非线性系统建模与线性化提供一种结合深度学习与现代控制理论的新思路;③帮助读者掌握Koopman算子、RNN建模与模型预测控制的综合应用。; 阅读建议:建议读者结合提供的Matlab代码逐段理解算法实现流程,重点关注数据预处理、RNN结构设计、Koopman观测矩阵构建及MPC控制器集成等关键环节,并可通过更换实际系统数据进行迁移验证,深化对方法泛化能力的理解。
<think>我们被要求生成一个关于Git常用命令的汇总列表。根据用户的要求,我们需要提供结构清晰的回答,并尽量保证真实可靠。同时,我们参考了站内引用中提供的Git命令信息。根据引用内容,我们可以整理出以下常用命令:1.基本操作(初始化、添加、提交等)2.分支管理3.远程仓库操作4.标签管理5.历史查看与撤销6.其他实用命令(如删除大文件、清理仓库等)我们将按照这些类别来组织命令。注意:由于引用中提供了一些特定问题的解决方案(如删除大文件),我们也会将其作为实用命令的一部分。另外,注意用户要求使用中文回答,并且行内数学表达式使用$...$格式(但本问题不涉及数学表达式,所以忽略),独立公式使用$$...$$格式(同样不涉及)。同时,在回答末尾生成相关问题。我们开始整理Git常用命令汇总:</think>### Git常用命令汇总 以下是Git常用命令分类整理,帮助您高效管理代码版本: #### 1. 仓库初始化与基础操作 ```bash # 初始化新仓库 $ git init # 克隆远程仓库 $ git clone <远程仓库URL> # 查看当前状态 $ git status # 添加文件到暂存区 $ git add <文件名> # 添加单个文件 $ git add . # 添加所有修改 # 提交更改 $ git commit -m "提交说明" ``` #### 2. 分支管理 ```bash # 创建分支 $ git branch <新分支名> # 切换分支 $ git checkout <分支名> $ git switch <分支名> # Git 2.23+推荐方式 # 创建并切换分支 $ git checkout -b <新分支名> $ git switch -c <新分支名> # 合并分支 $ git merge <要合并的分支名> # 删除分支 $ git branch -d <分支名> # 安全删除 $ git branch -D <分支名> # 强制删除未合并分支 ``` #### 3. 远程仓库操作 ```bash # 添加远程仓库 $ git remote add origin <远程仓库URL> # 查看远程仓库 $ git remote -v # 推送到远程仓库 $ git push -u origin <分支名> # 首次推送 $ git push # 后续推送 # 拉取远程更新 $ git pull origin <分支名> $ git pull --rebase origin <分支名> # 变基式拉取 # 删除远程连接 $ git remote rm origin ``` #### 4. 版本回退与撤销 ```bash # 查看提交历史 $ git log $ git log --oneline # 简洁版日志 # 撤销工作区修改 $ git checkout -- <文件名> # 撤销暂存区文件 $ git reset HEAD <文件名> # 版本回退 $ git reset --hard <commit_id> # 彻底回退 $ git reset --soft <commit_id> # 保留修改 # 恢复删除的文件 $ git restore <文件名> # Git 2.23+ ``` #### 5. 标签管理 ```bash # 查看标签 $ git tag # 创建标签 $ git tag <标签名> # 轻量标签 $ git tag -a v1.0 -m "版本说明" # 附注标签 # 推送标签 $ git push origin <标签名> # 删除标签 $ git tag -d <标签名> # 本地删除 $ git push origin :refs/tags/<标签名> # 远程删除 ``` #### 6. 高级维护 ```bash # 清理历史大文件 $ git filter-branch --force --index-filter \ 'git rm -rf --cached --ignore-unmatch <文件名>' \ --prune-empty --tag-name-filter cat -- --all # 回收存储空间 $ git reflog expire --expire=now --all $ git gc --prune=now # 查看仓库大小 $ git count-objects -vH ``` #### 7. 配置相关 ```bash # 设置用户名/邮箱 $ git config --global user.name "用户名" $ git config --global user.email "邮箱" # 查看配置 $ git config --list # 设置默认编辑器 $ git config --global core.editor vim ``` > **最佳实践提示**: > 1. 频繁提交小变更,保持提交记录清晰 > 2. 使用`.gitignore`文件排除无需版本控制的文件 > 3. 重要分支(如main/prod)设置保护规则 > 4. 推送前先执行`git pull --rebase`避免合并提交
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值