Git工作流程和常用命令分享

Git工作流程和常用命令分享,第1张

git是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。林纳斯·托瓦兹在编写第一个版本时就使用了“git”这个名称, 他将工具描述为“愚蠢的内容跟踪器”。

[图片上传失败...(image-c23291-1619063471664)]

四个专有名词:

Workspace:工作区

Index / Stage:暂存区

Repository:仓库区(或本地仓库)

Remote:远程仓库

打开本地生成的.git隐藏文件

创建新项目gittest

创建新文件test.txt

git add <file>

git status显示有变更的文件

git restore <file> 撤回文件修改内容

git commit –m “注释”

修改内容->执行git diff工作区和本地仓库的差异

git log显示当前分支的版本历史

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

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

git reset --hard HEAD~100 回退到前100个版本

恢复已经删除的版本

git reflog 展示所有的提交记录

git reset --hard <版本号>回退到指定版本

git push origin master 将本地master分支推送到远程master分支,相当于创建远程分支

git checkout -b dev = git branch dev + git checkout dev 创建并切换分支

git branch 不带参数,会列出所有本地的分支;带参数表示创建分支

git branch –d name 删除本地分支(-D表示强制删除)

git branch –r 不带参数,会列出所有远程的分支

git branch --set-upstream-to=origin/<branch本地>本地和远程分支关联

git push origin –delete <branch>删除远程分支

git merge release用于合并指定分支到当前分支上

注:Fast-forward表示的合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。在这种模式下,删除分支后,会丢掉分支日志信息。可以使用带参数 --no-ff来禁用”Fast forward”模式。

git merge --no-ff -m “注释”dev

git checkout release 切换release分支

vim test.txt 修改某条内容

git commit test.txt -m “release修改某条内容”

git checkout master 切换master分支

vim test.txt 修改某条同release内容

git commit test.txt -m “master修改某条内容”

git merge release 显示冲突

git status 显示冲突提示

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,其中>>>>release 是指release上修改的内容

vim test.txt 修改内容

git add test.txt

git commit -a -m “fix conflict”

当前分支有没有提交但也不合适现在就提交的内容,Git提供了暂储功能stash

git checkout release

vim test.txt 修改test.txt内容

git checkout develop 此时会提示Aborting

git status 查看当前状态

Git stash list 查看所有暂储列表

git stash apply恢复,恢复后stash内容并不删除,你需要使用命令git stash drop来删除;

另一种方式是使用git stash pop,恢复的同时把stash内容也删除了

创建Git Tag并推送远程服务器

git tag -a V1.0.0 –m“注释”//创建TAG

git push origin V1.0.0 //推送到远程服务器

git push origin --tag //提交所有tag至服务器

git tag -d V1.0.0 //删除本地标签

git push origin --delete tag <tagname> //删除远程标签

HEAD,它始终指向当前所处分支的最新的提交点。你所处的分支变化了,或者产生了新的提交点,HEAD就会跟着改变

add相关命令很简单,主要实现将工作区修改的内容提交到暂存区,交由git管理。

git add .添加当前目录的所有文件到暂存区

git add 添加指定目录到暂存区,包括子目录

git add 添加指定文件到暂存区

commit相关命令也很简单,主要实现将暂存区的内容提交到本地仓库,并使得当前分支的HEAD向后移动一个提交点。

git commit -m 提交暂存区到本地仓库,message代表说明信息

git commit --amend -m 使用一次新的commit,替代上一次提交

上传本地仓库分支到远程仓库分支,实现同步。

git push 上传本地指定分支到远程仓库

git push --force强行推送当前分支到远程仓库,即使有冲突

git push --all推送所有分支到远程仓库

关于分支,大概有展示分支,切换分支,创建分支,删除分支这四种操作。

git branch列出所有本地分支

git branch -r列出所有远程分支

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

git branch 新建一个分支,但依然停留在当前分支

git checkout -b 新建一个分支,并切换到该分支

git checkout 切换到指定分支,并更新工作区

git branch -d 删除分支

git push origin --delete 删除远程分支

关于分支的操作虽然比较多,但都比较简单好记

merge命令把不同的分支合并起来。在实际开放中,我们可能从master分支中切出一个分支,然后进行开发完成需求,中间经过R3,R4,R5的commit记录,最后开发完成需要合入master中,这便用到了merge。

git merge 合并指定分支到当前分支

注:如果在merge之后,出现conflict,主要是因为两个用户修改了同一文件的同一块区域。需要针对冲突情况,手动解除冲突。

rebase又称为衍合,是合并的另外一种选择。

在开始阶段,我们处于new分支上,执行git rebase dev,那么new分支上新的commit都在dev分支上重演一遍,最后checkout切换回到new分支。这一点与merge是一样的,合并前后所处的分支并没有改变。

git rebase dev,通俗的解释就是new分支想站在dev的肩膀上继续下去。

rebase操作不会生成新的节点,是将两个分支融合成一个线性的提交。

rebase也需要手动解决冲突。

1.如果你想要一个干净的,没有merge commit的线性历史树,那么你应该选择git rebase

2.如果你想保留完整的历史记录,并且想要避免重写commit history的风险,你应该选择使用git merge

reset命令把当前分支指向另一个位置,并且相应的变动工作区和暂存区。

git reset —soft 只改变提交点,暂存区和工作目录的内容都不改变

git reset —mixed 改变提交点,同时改变暂存区的内容

git reset —hard 暂存区、工作区的内容都会被修改到与提交点完全一致的状态

git revert用一个新提交来消除一个历史提交所做的任何修改。

在回滚这一操作上看,效果差不多。git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。

在 Git工作区的根目录创建一个特殊的.gitignore文件。

在.gitignore文件中,添加需要忽略的文件。

git rm -r --cached .//将仓库中的index递归删除

git add . //重新添加仓库索引

git commit -m “update git.ignore” //提交

git branch --set-upstream-to=origin/<branch><branch>//重现将本地仓库和远程仓库关联

最后,如果此篇博文对你有所帮助,别忘了点个赞哟~

基本指令:cl_showfps 0/1 关闭/显示当前fps值net_graph 0/1 关闭/显示当前fps、ping值、loss、choke、tick--fps越高游戏越流畅,只与机器配置有关,与网络/服务器无关--ping越低游戏延迟越低,只与自身网络以及服务器有关--loss指游戏数据输入,值越高越接受不到外界的信息,敌人脚步声、枪声等,有事甚至无法看见烟雾弹--choke指游戏数据输出,值越高你的步伐越有可能走2步退1步,好像后面有人拉着你,严重的切枪也切不出来,丢手雷丢不出去,开枪有枪声但子弹却没减少--tick分为64和128,128的弹道要好一点,tick值由当前服务器决定(使用VPN选个好节点,能有效缓解匹配/ESEAping、loss、choke太高的问题)fps_max 100 限制最高fps刷新率为每秒100帧(能有效降低电脑负担,但配置好的机器推荐设置为300或者更高。如果机器配置差但fps_max设得很高,有可能造成鼠标丢帧,得不偿失)sensitivity 1 鼠标灵敏度为1zoom_sensitivity_ratio_mouse 1.2 狙击开镜后的灵敏度为1.2cl_righthand 0/1 左/右手持枪disconnect 退出正在连接中的服务器retry 重连最近一次进过的服务器exit/quit 退出游戏服务器常用指令:mp_restartgame 1 1秒后刷新游戏mp_autoteambalance 0/1 是否打开自动平衡mp_maxmoney 16000 最高金钱16000mp_roundtime 60 死亡竞赛的回合时间60分钟mp_roundtime_defuse 60 休闲/竞技模式每局时间60分钟mp_maxrounds 30 休闲/竞技模式最大局数设为30局mp_startmoney 16000 出生金钱为16000mp_buytime 15 开局购买时间15秒mp_buy_anywhere 1 在任意地点都能购买武器mp_freezetime 0 每局出生原地冻结时间0秒mp_friendlyfire 0/1 关闭/开启友军伤害mp_limitteams 2 双方人数差异最多为2人maxplayers 16 地图最大玩家数(包括机器人)mp_c4timer 45 C4引爆时间45秒map de_inferno 切换地图为de_inferno(炼狱小镇)maps 列出该服务器所有地图mp_display_kill_assists 0/1 关闭/开启助攻显示mp_overtime_enable 0/1 是否允许打加时赛mp_randomspawn 0/1 是否基地为出生点mp_teammates_are_enemies 0/1 死斗模式/死亡模式mp_respawn_on_death_t 0/1mp_respawn_on_death_ct 0/1sv_password 123 设置服务器密码为123exec gamemode_模式 切换游戏模式有关准星设置的指令:cl_crosshaircolor 颜色(0红1绿2黄3蓝4青5紫)cl_crosshairsize 4 准星长短cl_crosshairthinkness 1 准星粗细(1最细)cl_crosshairalpha 999 准星透明度(越低越透明)cl_crosshairdot 0/1 准星中间不加/加个点cl_crosshairstyle 0~5 准星类型(默认、经典静态、经典、经典动态、经典静态、cs1.6版准星)有关电脑玩家bot的指令:bot_add 随机增加一个botbot_add_ct 增加一名CTbot_add_t 增加一名Tbot_kick 踢出所有电脑bot_kill 处死所有电脑bot_stop 1 bot原地站着不动bot_freeze 1 冻结所有botbot_place 将一个bot放置在此bot_dont_shoot 1 bot停止射击(但bot被闪会乱开枪)bot_knives_only bot只能用刀bot_pistols_only bot只能用手枪bot_snipers_only bot只能用各种狙bot_all_weapons bot能用所有武器bot_difficulty bot难度,数值越高越难

1楼回答得那么复杂喔...提问的人要是菜鸟怎么看得明白啊!

首先登陆FTP服务器,例如进入"web"文件夹的命令:

ftp>cd web

其中cd web就是进入web文件夹的命令.

如果要从"web"文件夹返回到上一个"root"目录的命令:

ftp>cd..

其中cd..就是返回上一目录

试试看吧...


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/659222.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-24
下一篇2023-07-24

发表评论

登录后才能评论

评论列表(0条)

    保存