1、公司里多人协同开发一个项目,需要版本管理工具:svn,git
2、git可以实现版本控制
3、git,gitee,github,gitlab
gitee:中国的github(很多公司在用)
github:远程仓库,全球最大的开源代码库
gitlab:公司自己搭建的远程仓库,公司的代码放在上面

工作区:
开发程序的文件夹
暂存区:
修改后的文件临时暂存到内存中
本地版本库:
将写好的项目放在本地版本库中保存
服务器版本库:
将写好的项目放在服务器版本库中保存
https://git-scm.com/downloads
# 无脑下一步即可
# 1、初始化仓库,让git接管你的项目
git init
# 2、查看仓库状态
git status
-红色:新建,修改,删除,在工作区没有放到暂存区
-绿色:放到暂存区,没有提交到版本库
-没有东西:说明所有变更都被版本管理起来了
# 3、将当前路径下的所有变更提交到暂存区
git add .
# 4、将暂存区的内容提交到版本库
git commit -m '注释'
# 5、设置用户(目的在于可以在远端看到是谁提交了内容,更方便公司的管理)
# 5.1、设置全局用户(在家路径下创建用户,每个项目都用这一个用户)
>: git config --global user.name 'tianyanlong'
>: git config --global user.email 'tianyanlong2000@163.com'
# 5.2、设置局部用户(局部是指在某个项目下创建用户,可以在不同项目下创建不同用户)
>: git config user.name 'tianyanlong'
>: git config user.email 'tianyanlong2000@163.com'
# 6、撤销工作区操作
git checkout .
# 7、撤销暂存区操作(了解)
git reset .
# 8、撤销版本库提交
git reset --hard 版本号
# 9、查看版本管理日志
git log # 显示作者,版本号,注释
git reflog # 显示精简信息,显示的更多(版本切换也会显示)
1 我们项目中有一些文件,文件夹,不要提交到版本库
2 在项目根路径新建:.gitignore.(win平台)
3 在文件中写忽略的文件/文件夹
-直接写文件夹名字或者/文件夹名字,表示忽略这个文件夹
-# 表示注释
-直接写文件名,表示忽略该文件
-* 表示通配符,表示任意数量任意字符 案例:*.log 以.log结尾的都忽略
-?表示单个字符 ?.log

# 1、查看分支
git branch # 绿色代表当前所在分支
# 2、新建分支
git branch 分支名
# 3、切换分支
git checkout 分支名
# 4、删除分支
git branch -D 分支名 # 只有在另外一个分支下才能删除当前分支
# 5、合并分支(子分支合并到主分支)
git branch master # 先切换到主分支
git merge dev # 再将子分支合并到主分支


新建完了之后页面是这样的

-gitee,github,gitlab
-remote源操作(远程仓库)
-查看远程仓库:git remote
-添加远程仓库(远程仓库的名字origin):git remote add origin https://gitee.com/liuqingzheng/test.git
-git项目创始者和开发者
-采用ssh协议连接远程源
-提交本地代码到远程仓库
git flow:git 工作流,人为设定的一个标准,多条分支,分别有不同的用途
-查看远程仓库:
git remote
-添加远程仓库(远程仓库的名字origin):
git remote add 远程仓库名字 仓库地址
git remote add origin https://gitee.com/liuqingzheng/test.git
-删除远程仓库
git remote remove origin
1 没有项目纯空的
mkdir test
cd test
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/liuqingzheng/test.git
git push -u origin master
2 项目已经存在,在本地以及操作了(git_test)
cd git_test
git remote add origin git@gitee.com:tian-yanlong/logistics_api.git
git push -u origin "master" # 本地代码推送到远程
# 推送 远程仓库名 主分支
3 提交的时候需要输入gitee的用户名和密码
4 提交成功以后,在远程仓库能看到版本变更记录
# 因为是开源的所有人都可以克隆
git clone https://gitee.com/liuqingzheng/test.git
# 修改改代码
git add .
git commit -m
git remote 配置远程仓库(我现在不用配,同一台机器已经配置过了)
git push origin master
# 在提交代码之前,要先更新
git pull origin master
让git管理项目,本质是在项目根目录下创建了.git文件夹

将工作区的内容放到暂存区中

将暂存区的内容存放到本地版本库中

添加了远程仓库之后,才能把本地版本库中的内容上传到服务器端版本库中

将本地版本库中的内容上传到服务器端版本库中

将服务器端版本库中最新内容同步到本地

从gitee中下载别人的代码

1 使用https操作的,第一次提交的时候,输入用户名密码
2 企业里通常使用ssh
-公钥:配置在gitee
-私钥:留在你本地
在git bash here 下,位置无所谓执行
ssh-keygen -t rsa -C "tianyanlong2000@163.com"
-会在 C:\Users\tianyanlong\.ssh文件夹下生成公钥私钥
-公钥给别人,私钥不能泄露(非对称加密:对称加密)
非对称加密:加密用公钥,解密用私钥
对称加密:加密和解密用同样的密码
先打开设置,然后再按图操作


1 多人开发同一个项目
2 现在你们git clone 项目,在你本地了
3 可以改代码了,当你git push 的时候,提交不了
4 项目管理员分配给你权限(gitee中管理--》仓库成员--》邀请成员)
5 这一个项目有一个管理员,若干开发者
6 重点:不能跨版本提交,只能先拉到最新,再提交
7 如果某个开发者再s1.py 的第14行加入了东西,我也加入了,他先提交(它没问题)
8 当我再拉取,出冲突了
<<<<<<< HEAD
你的代码
=======
同事的代码
>>>>>>> d78b8fb39f6469e810868218a052bc3174b3e1fc
9 解决冲突
-留你的代码:你写的好
-留他的代码:你觉得他写的好
-你们的都留着:你俩虽然改了一行,但是功能不一样
1 在线上新建一个dev1分支
2 拉去到本地
3 在本地dev1分支增加一行代码,提交到版本库
4 在本地dev1分支又增加一行代码,提交到版本库
5 远程分支合并
-pull request,指定从哪个分支合并到哪个分支
-绿色表示没有冲突,可以正常合并
-普通和扁平化(变基)
6 本地、远程的dev1和master就完全一样了
1 本地dev1分支新增代码,提交到版本库
2 本地dev1分支合并到master
-切到master
-git merge dev1 (没有冲突直接合并)
-git push origin master (本地master提交到远端master)
3 切到dev1分支,再提交到远端
4 到此,本地分支合并完成,远端的dev1跟master完全一样,本地的dev1跟master也完全一样
1 再master加一行,提交到版本库
2 再dev1同样尾增增加一行,提交到版本库
3 把dev1合并到master,就会出冲突
-切到master分支
-git merge dev1 有冲突
-解决冲突(到底留什么,你觉得)
-提交到远端
1 远程仓库,回到最初路飞第一次提交的地方
2 再本地回复到第一次提交
git reset --hard 59dbf80c
git push origin master -f # 强制提交
3 切记 -f 清醒的时候使用
git flow
-是一种建分支的方案
-预览分支,开发分支,bug分支,主分支,测试分支...
pull和fetch区别
git pull:拉代码+合并
git fetch:拉代码,需要手动合进去
变基rebase
-合并分支的时候,是否保留之前分支的日志
git客户端:
-官方下载的一个(命令行下)
-pycharm编辑器
-sourcetree:美观,分支通过不同颜色显示,看着好看
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g
我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption
我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?
在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.
a=[3,4,7,8,3]b=[5,3,6,8,3]假设数组长度相同,是否有办法使用each或其他一些惯用方法从两个数组的每个元素中获取结果?不使用计数器?例如获取每个元素的乘积:[15,12,42,64,9](0..a.count-1).eachdo|i|太丑了...ruby1.9.3 最佳答案 使用Array.zip怎么样?:>>a=[3,4,7,8,3]=>[3,4,7,8,3]>>b=[5,3,6,8,3]=>[5,3,6,8,3]>>c=[]=>[]>>a.zip(b)do|i,j|c[[3,5],[4,3],[7,6],
我有一个非常简单的Controller来管理我的Rails应用程序中的静态页面:classPagesController我怎样才能让View模板返回它自己的名字,这样我就可以做这样的事情:#pricing.html.erb#-->"Pricing"感谢您的帮助。 最佳答案 4.3RoutingParametersTheparamshashwillalwayscontainthe:controllerand:actionkeys,butyoushouldusethemethodscontroller_nameandaction_nam
关于如何使用git设置类似Dropbox的服务,您有什么建议吗?您认为git是解决此问题的合适工具吗?我在考虑使用git+rush解决方案,你觉得怎么样? 最佳答案 检查这个开源项目:https://github.com/hbons/SparkleShare来自项目的自述文件:Howdoesitwork?SparkleSharecreatesaspecialfolderonyourcomputer.Youcanaddremotelyhostedfolders(or"projects")tothisfolder.Theseprojec
我编写了一个非常简单的“部署”脚本,作为我的裸git存储库中的post-updateHook运行。变量如下livedomain=~/mydomain.comstagingdomain=~/stage.mydomain.comgitrepolocation=~/git.mydomain.com/thisrepo.git(bare)core=~/git.mydomain.com/thisrepo.gitcore==addedremoteintoeachlive&stagegitslive和stage都初始化了gitrepos(非裸),我已经将我的裸仓库作为远程添加到它们中的每一个(名为co
我正在安装gitlabhq,并且在Gemfile中有对某些资源的“git://...”的引用。但是,我在公司防火墙后面,所以我必须使用http://。我可以手动编辑Gemfile,但我想知道是否有另一种方法告诉bundler使用http://作为git存储库? 最佳答案 您可以通过运行gitconfig--globalurl."https://".insteadOfgit://或通过将以下内容添加到~/.gitconfig:[url"https://"]insteadOf=git://