首页 > 其他分享 >git

git

时间:2023-03-02 16:58:26浏览次数:34  
标签:origin git 仓库 dev master 分支

1 git 多分支

# 为什么要有分支
	-可以保证,主分支的版本都是可以查看的版本
    -我们都在分支开发,开发完成,合并到主分支
    
# 分支操作
	-分支查看
    	git branch
    -分支创建
    	git branch 分支名
        git branch dev
    -分支切换
    	git checkout dev  # 切换到dev分支
    -分支删除
    	git branch -d dev
        
    -合并分支:(重要)
    	-把dev合并进master
        -先来到master分支:git branch checkout master
        -执行合并命令:git merge dev  # 把dev合并到我(master)身上
        # 分支合并可能会出冲突
        
# 公司里分支方案:小公司
	-master分支,dev分支,bug分支,所有人在dev分支开发,开发完成合并到主分支
    -master分支,dev分支,bug分支,个人分支,个人在个人分支上开发,开发完成合并到dev分支

2 git远程仓库

# 把本地的版本提交到远程仓库
# gitee, github, gitlab...
# gitlab搭建过程:https://zhuanlan.zhihu.com/p/413217715

# luffy_api 写好了一部分功能,要把代码提交到远程仓库

# 操作步骤:
	本地:
    	1 在luffy_api 敲git init
        2 设置忽略文件(.gitignore)
        3 git add .
        4 git commit -m '第一次提交'
        -----提交到了本地版本库------被版本管理了
        
    远程:
    	1 远程要创建仓库:gitee上创建仓库,右上角 +
        2 填一些信息,保证仓库是空的
    本地:
    	1 安装远端提示的步骤操作
        2 设置用户和邮箱
        3 咱们是已有仓库
        cd luffy_api
        # 添加一个远程仓库地址名字叫origin,地址是xxx
        git remote add origin https://gitee.com/liuqingzheng/luffy_api.git
        # 把本地的版本库推送到远程仓库
        # 把本地当前所在分支,推送到 origin对应的远程master上
        git push origin master
        # 需要输入用户名密码,输入一次,以后就不用输入了(本地保存了,凭据管理)
        
# 如果提交了,再些忽略文件的步骤
	luffy.log--->暂存区--->版本库
    
    .gitignore--->写上忽略,但是不好被忽略,只要luffy.log有变化还是会被监控到
    删除luffy.log--->会被监控到--->add,  commit--->版本库中已经没有luffy.log
    再出的luffy.log, 就不会被管理了

3 ssh方式连接远程仓库

# 刚刚提交代码---》输入了用户名密码---》才可以提交上去----》使用的是https的协议提交的代码
	-它需要输入用户名和密码
    
# 咱们要使用ssh方案:需要公钥和私钥  ---》 公司里这种方式多
	-私钥在本地保存
    -公钥配置到gitee上
    -以后再提交代码,不需要其他任何认证了,一路绿灯
    
# 使用步骤:
	-生成公钥私钥:https://gitee.com/help/articles/4181
        -在命令窗口中执行,一路回车
        ssh-keygen -t ed25519 -C "[email protected]" 
        -生成在:C:\Users\Administrator\.ssh  两个文件,一个公钥,一个私钥
    -把公钥,配置在gitee上
    -之前origin对应的地址是 https的,现在要使用ssh提交代码,需要把它删除,在增加成ssh的协议
    git remote remove origin
    git remote add origin
[email protected]:liuqingzheng/luffy_api.git    

4 协同开发

# 我[仓库管理员]创建了仓库,我对仓库有各种权限
# 我们要多人开发(张三,李四),张三李四在自己的仓库中,能看到我的项目吗?看不到
# 我[仓库管理员],把张三李四设置为该仓库的开发者,设置完成后,在张三李四的仓库中就能看到这个项目了

# 仓库管理员,邀请开发者进入
	-邀请的开发者,对这个仓库就有读写权限,他们就可以开发代码,提交
    
# 我作为开发者,本地没有代码
	1 把代码从远程仓库 clone下来
    	git clone [email protected]:liuqingzheng/luffy_api.git
    2 使用pycharm打开,配置好解释器,安装依赖
    3 开发代码,开发完
    	git add
        # 设置用户名和邮箱
        git config user.name lqz
        git config user.email @qq.com
        
        git commit
        git push origin master
        
# 刚去公司的步骤
	1 自己注册,hr给你 gitlab 账号和密码
    	-自己去你的账号里,配置ssh
    2 老大会把一个仓库地址给你 【它已经把你加成开发者了】  https  ssh
    3 clone下来代码
    4 使用pycharnm打开,配置环境===》代码运行起来
    5 开发代码,本地提交---》push到远端
    	add
        commit
        push

5 冲突解决

# 出现冲突的原因
	1 多人在同一分支开发
    2 分支合并出现冲突
    
# 多人在同一分支发生冲突
	-张三:
    	git pull origin master
        在requirements.txt,最后一行加入 lqz
        git add .
        git commit -m
        git push origin master
        
    -我:
    	在requirements.txt,最后懿航加入lqz
        git add .
        git commit -m
        git pull origin master
        # 冲突了
        # 解决冲突 冲突的 箭头去掉,阅读代码,选择保留或删除别人或自己的代码,再提交
        # 提交到远程仓库,这是解决后的
        
# 冲突出现的样子:你如果要删除别人的代码,你需要跟别人说一声
    <<<<<<< HEAD   我的代码
    print('刘亦菲')
    =======   它的代码
    print('彭于晏')
    >>>>>>> 6f720edbd84c8744b1c7c10767fb89a5d0fa98f5
    
# 避免出现冲突
 	-你如果想少出现冲突,勤拉取代码
    
# 冲突出现的原因2,分支合并出冲突  
	-我:
    	1 创建dev分支
        	git branch dev
        2 在dev分支的views.py 中第2行加入代码
        3 提交到本地仓库
        
    -我:
    	1 在主分支的views.py 中第二行加入代码
        2 提交到版本库
        
        3 在主分支合并代码 git merge dev
        4 冲突了,解决冲突
        5 再提交代码,到此结束

6 线上分支合并

# 线下分支合并
	git merge dev
    
# 线上 分支合并
	-gitee上,新建一个分支,点点创建出来
    -本地同步远程dev分支
    	git pull origin dev  # 拉下来了,还看不到,只有切过去,才看得到
        git checkout dev
    -在dev上开发
    	随便加代码
        git add
        git commit
        # 提交到本地的dev了
        
    -推到远端 dev
    	git push origin dev
    -master中没有代码,dev中有提交的,现在要线上分支合并
    -把远程的dev合并进远程的master
    -提交pr   提交rr
    -在网站上,申请提交pull request
    -领导审核,测试,通过后,点击合并
    -线上dev就合并进线上的master了
    

7 远程仓库回滚

# 你不要用
# 想远程的代码,是最初的状态

# 步骤:
	1 本地版本回退
     git reset --hard 版本号
        
    2 强行推到远端
    git push origin master -f

标签:origin,git,仓库,dev,master,分支
From: https://www.cnblogs.com/DragonY/p/17172325.html

相关文章

  • git常规操作
    git拉代码使用gitclone命令从仓库下载代码,代码下载到了本地:gitclone链接如果仓库代码又了更新,这时可以使用gitpull命令将更新下载到本地在对本地代码就行修改后,可以......
  • git常用命令学习笔记
    git常用命令学习笔记一、下载安装输入网址自动下载 ​​https://git-scm.com/download/win​​常用客户端:sourceTree二、基础配置配置用户信息gitconfig--global......
  • npm install时遇到错误"error:0308010C:digital envelope routines::unsupported"的解
    今天早上打开电脑,更新了日常工作的github仓库,然后就是习惯性地执行了"npminstall",发现报了下面这个错误:Error:error:0308010C:digitalenveloperoutines::unsuppo......
  • Git和Github
    Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端......
  • 使用gitlab+jenkins实现本地推送到仓库并且自动更新到线上
    1、安装好gitlab服务(不详细介绍)2、安装好jenkins服务(不详细介绍)gitlab配置在gitlab上进入要操作的项目,在左边的菜单栏上找到这个配置,【设置-Webhooks】 网址:从jenki......
  • git指令
           ......
  • git 在所有分支中搜索内容
    gitbranch-a|cut-c3-|cut-d''-f1|xargsgitgrep"基本信息"​......
  • 关于本地项目上传到gitlab
    两种方式的说明,如果是以学习的目的,建议使用第一种方式;如果是为了快速把代码上传到gitlab,建议使用第二方式;查看git配置的命令,注意:不同的目录,配置项也不尽相同:gitconfig--......
  • AI 能多强「GitHub 热点速览」
    不知道AI在你那边是什么样的具象,在我这就是各种搞图:从给线稿图上色,到直接给你生成一张小色图,AI最近是真出风头,本周热点速览也收录了2个AI项目,也和图像有关。还有一......
  • Git介绍下载安装以及基本使用
    目录一、git介绍二、下载安装git软件三、基本使用四、制作忽略文件五、Git、Gitee、GitHub、Gitlab、bitbucket的区别六、基础代码操作分类一、git介绍git代码管理软件,和......