Git的使用

1.Git 的安装

  http://git-scm.com/download 上下载window版的客户端,然后一直下一步下一步安装git即可,请注意,如果你不熟悉每个选项的意思,请保持默认的选项

2.Git使用前的配置

使用Git前需要让git知道我们是谁,邮箱是什么(即是配置自己的用户名和邮箱)

所以我们需要对git进行一些基本设置。打开终端(Windows打开安装git时安装的git bash)执行如下命令

git config --global user.name "你的名字或昵称"
git config --global user.email "你的邮箱"

这样就配置好了这台电脑的git 如果您没有安装git bash或者使用其他工具,建议您查找该工具的设置教程,本文档建议使用命令行终端操作git,这样遇上的兼容性问题最小。

sshkey的配置:

* 生成sshkey

你可以按如下命令来生成sshkey

ssh-keygen -t rsa -C "xxxxx@xxxxx.com"# Creates a new ssh key using the provided email
# Generating public/private rsa key pair...

查看你的public key,并把他添加到 Git @ OSC http://git.oschina.net/keys

cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....

添加后,在终端(Terminal)中输入

ssh -T git@git.oschina.net

若返回

Welcome to Git@OSC, yourname!

则证明添加成功。

本地配置环境:

  • 配置Git(Egit):(eclipse3.7以上都有,如果没有自行百度安装EGIT)
  • 设置Git HOME:需要在系统环境变量中为Git提供一个HOME路径。这个目录将用于保存git的配置文件和默认的本地仓库。我这里使用的是F:\GitHome,当然你可以设置系统盘的任意路径。

  • 配置git用户信息:在eclipse 》Preferences 》Git 》Configuration 选项中配置git用户信息,在这个界面上你就可以看到eclipse使用了之前设置的HOME来保持git配置信息。
  • 在界面上选择Add Entry… 
  • 添加用户信息
  •   key: user.email/Value:2722569407@qq.com、
  •   Key:user.name/Value:czp,
 点击Apply完成配置。这里Git的配置就算完成了。

  •  特别说明:Egit就是git的一个客户端,我这里不需要再安装任何其他的Git客户端了,看到网上很多人写这里还要安装诸如msysGit、TortoiseGit等GUI客户端,这些都是谣传。如果你确实需要的话,你可以安装。
  • 配置SSH:
  • 配置SSH Home路径:当然这里还是使用Eclipse自带的SSH2工具,网上还是有很多谣传:Eclipse的SSH不要用,要是Git GUI的SSH命令行。SSH默认的Home在user/.ssh路径,为了方便管理,这里我使用了GitHome路径:F:/GitHom/.ssh。这里你依旧可以使用系统任意路径

             

  • 生成RSA密钥对:接下来使用Key Management 》Generate RSA Key… 生成SSH密钥,输入密码,这个密码将在使用密钥时使用,点击Save Private Key保存密钥,这时将在SSH Home下产生两个文件:id_rsa、id_rsa.pub。id_rsa是SSH密钥对的密钥,不能泄露,而id_rsa.pub是SSH的公钥,用途在下文介绍。在上一步界面中的private keys中选择这里的id_rsa文件。 点击Apply,SSH配置 完成 。
             

   到这一步,本地配置全部完成!
  • 将生成的ssh加入到网站管理仓库
  • 创建仓库:这里以http://git.oschina.net的远程仓库管理为例,其他仓库项目方法类似。
  • 添加SSH公钥:首先你要把你的SSH公钥添加到你git托管服务网站的SSH公钥中,SSH公钥就在.ssh/id_rsa.pub文件中。复制粘贴进去就可以了。
  • 特别注意的是:这里是用户资料下面的SSH公钥,不是项目下的部署公钥。项目的部署公钥只有读权限,没有写权限,这意味着你可以pull项目,不能push。如果这里弄错,将在push时报错:" push not permitted ",

* 如何添加sshkey

点击右上角的输入图片说明标志,进入个人中心,然后点击左侧的ssh公钥后在下图位置填写你的ssh公钥


击确定,然后验证密码就完成了ssh公钥添加

* 项目的sshkey和用户的ssh key的区别

项目的sshkey只针对项目,且我们仅对项目提供了部署公钥,即项目下的公钥仅能拉取项目,这通常用于生产服务器拉取仓库的代码,而用户的key则是针对用户的,用户添加了key就对用户名下的项目和用户参加了的项目具有权限,一般而言,用户的key具有推送和拉取的权限,而项目的key则只具有拉取权限


3 . Git的一些常用的名词、概念及常用命令解释

仓库

在 Git 的概念中,仓库,就是你存在.git目录的那个文件夹内的所有文件,包括隐藏的文件,Git程序会再当前目录以及上级目录查找是否存在.git文件,如果存在,则会将.git目录存在的文件夹开始下的所有文件当成你需要管理的文件,所以,我们如果想将某个文件夹当做一个Git仓库,你可以在那个文件夹下通过终端(Window为Cmd或者PoewrShell或者Bash)来执行

git init

这样,你所期望的那个文件夹就成为了一个Git管理的仓库了

版本

严格来讲,Git并不存在版本的概念,但人们也硬是发展出了这么个玩意,在Git中,计数基础是提交,即我们常说的Commit,我们每做一点更改便可以产生一次提交,当提交累计起来,可以作为产品定型时,就在当前的Commit上打上一个标记,将这个标记我们称之为版本多少多少,那么就算完成了一个版本,标记本身被称之为Tag,请注意,在Git中,版本仅仅只是某一个提交的标签,并没有其他意义,Git本身也仅有打标签的功能,并没有版本功能,版本功能是根据Tag来扩展的,Git本身并没有

分支

这是Git中最重要的也是最常用的概念和功能之一,分支功能解决了正在开发的版本与上线版本稳定性冲突的问题在Git使用过程中,我们的默认分支一般是Master,当然,这是可以修改的,我们在Master完成一次开发,生成了一个稳定版本,那么当我们需要添加新功能或者做修改时,只需要新建一个分支,然后在该分支上开发,完成后合并到主分支即可

提交

提交在Git中同样是非常重要的概念,Git对于版本的管理其实是对于提交的管理,在整个Git仓库中,代码存在的形式并不是一分一分的代码,而是一个一个的提交,Git使用四十个字节长度的16进制字符串来标识每一个提交,这基本保证了每一个提交的标识是唯一的,然后通过组织一个按照时间排序的提交列表,就组成了我们所说的分支,请注意,分支在本质上只是一个索引,所以,我们可以任意回退,修正,即使因为某些原因丢失了,也可以重建另外,关于Git的储存方式:Git是仅仅只储存有修改的部分,并不会储存整个文件,所以,请不要删除文件夹整个文件夹的内容,除非你确定你不再需要他,否则请勿删除

同步

同步,也可以称之为拉取,在Git中是非常频繁的操作,和SVN不同,Git的所有仓库之间是平等的,所以,为了保证代码一致性,尽可能的在每次操作前进行一次同步操作,具体的为在工作目录下执行如下命令:

git pull origin master

其中origin代表的是你远程的仓库,可以通过命令git remote -v 查看,master是分支名,如果你本地是其他分支,请换成其他分支的名字,另,因为远程仓库与你本地仓库可能存在冲突,故当存在冲突时,请参考进阶篇的如何处理冲突

推送

和拉取一样,也是一个非常频繁的操作,当你代码有更新时,你需要更新到远程仓库,这个动作被称之为推送,执行的命令与拉取一样,只是将其中的pull这个单词改成push,同样,如果远程仓库存在你本地仓库没有的更新,则在推送前你需要先进行一次同步,如果你确定你不需要远程的更新,则在推送时加上-f 选项,则可以强制推送,注:在协同开发中,我并不建议这么做,因为这样很可能覆盖别人的代码

推送代码示例:

git push origin master

强制推送代码示例:

git push origin master -f

冲突

在使用Git开发时,如果只是一个人使用,那么基本不会产生冲突,但是在多人合作开发的情况下,产生冲突是很正常的一件事情,关于如何处理冲突,请参考进阶篇的如何处理代码冲突 这一小节

合并

合并这个命令通常情况下是用于两个分支的合并,一般用于本地分支,远程分支多用Pull命令,该命令的功能是将待合并分支与目标分支合并在一起,注意,这个命令只会合并当前版本之前的差异,两个分支的提交历史会根据提交时间重新组织索引,故只可能会产生一次冲突但是会生成一个提交,如果你不想生成这次提交,加上--base参数即可

暂存

这个既是一个概念也是一个命令,其含义就是字面上的,作用就是可以将你当前正在进行的工作暂时存起来,然后在此基础上干别的事情,等你别的事情干完后,再转回来继续,注意,暂存只是针对你最后一次改动而言,即针对当前所在的版本的所有改动都算具体执行命令为:

将当前改动暂存起来:
git stash
恢复最后一次暂存的改动
git stash pop
查看有多少暂存
git stash list

撤销

撤销命令使用是非常频繁的,因为某些原因,我们不再需要我们的改动或者新的改动有点问题,我们需要回退到某个版本,这时就需要用到撤销命令,或者说这个应该翻译成重置更加恰当。具体命令如下:

撤销当前的修改:
git reset --hard

请注意:以上命令会完全重置你的修改,如果你想保留某些文件,请使用checkout +文件路径 命令来逐一撤销修改

如果你想重置到某一版本,可以将 --hard 改为具体的Commit的id如:
git reset 1d7f5d89346

请注意,这时你的修改仍然存在,只是你的最近一次提交的版本号变成了你要重置的版本,如果说你想完全丢弃修改,只需要加上 --hard参数就可以

4.Git的工作流程

一般工作流程如下:

  • 克隆 Git 资源作为工作目录。
  • 在克隆的资源上添加或修改文件。
  • 如果其他人修改了,你可以更新资源。
  • 在提交前查看修改。
  • 提交修改。
  • 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
  • 流程图如下



  • 5. Git文件的三种状态

  • 对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。
                        已提交:表示该文件已经被安全地保存在GIT数据库中了;
                         已修改:表示修改了某个文件,但还没有提交保存;
                         已暂存:表示把已修改的文件放在下次提交时要保存的清单中。
    由此我们看到 Git 管理项目时,文件流转的三个工作区域:Git 的工作目录(git directory),暂存区域(staging area),以及本地仓库(working directory)。首先, 在工作(项目)目录中修改某些文件。然后,对修改后的文件进行快照,然后保存到暂存区域,commit。最后,提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中,push。所以,我们可以从文件所处的位置来判断状态:如果是 Git 目录中保存着的特定版本文件,就属于已提交状态;如果作了修改并已放入暂存区域,就属于已暂存状态;如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。
    如图 3:





在车辆工程中,悬架系统的性能评估和优化一直是研究的热点。悬架不仅关乎车辆的乘坐舒适性,还直接影响到车辆的操控性和稳定性。为了深入理解悬架的动态行为,研究人员经常使用“二自由度悬架模型”来简化分析,并运用“传递函数”这一数学工具来描述悬架系统的动态特性。 二自由度悬架模型将复杂的车辆系统简化为两个独立的部分:车轮和车身。这种简化模型能够较准确地模拟出车辆在垂直方向上的运动行为,同时忽略了侧向和纵向的动态影响,这使得工程师能够更加专注于分析与优化与垂直动态相关的性能指标。 传递函数作为控制系统理论中的一种工具,能够描述系统输入和输出之间的关系。在悬架系统中,传递函数特别重要,因为它能够反映出路面不平度如何被悬架系统转化为车内乘员感受到的振动。通过传递函数,我们可以得到一个频率域上的表达式,从中分析出悬架系统的关键动态特性,如系统的振幅衰减特性和共振频率等。 在实际应用中,工程师通过使用MATLAB这类数学软件,建立双质量悬架的数学模型。模型中的参数包括车轮质量、车身质量、弹簧刚度以及阻尼系数等。通过编程求解,工程师可以得到悬架系统的传递函数,并据此绘制出传递函数曲线。这为评估悬架性能提供了一个直观的工具,使工程师能够了解悬架在不同频率激励下的响应情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值