ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

11.29 git使用

2021-11-29 10:34:41  阅读:143  来源: 互联网

标签:origin 11.29 git -- 代码 dev 使用 分支


文章目录

是什么

git:分布式版本控制软件

历史发展

文件(多文件) => 本地(单文件) => 集中式版本控制 (可协作开发 SVN)=> 分布式版本控制(集中式挂掉了,不影响单独的操作)

为什么

方便回滚,获得以前的版本

怎么做

  • 进入要管理的文件夹(进入)
  • 初始化(提名)
  • 管理
  • 生成版本

常用命令

  • 初始化仓库

    git init
    
  • 查看文件的状态

    git status
    
  • 把文件添加到暂存区

    git add 文件名  添加单个文件
    git add .      添加所有文件
    
  • 把文件添加到本地仓库(第一次提交可能需要配置你的邮箱和用户名,根据提示简单配置就行)

    git commit -m "提交信息"
    
  • 查看提交版本的信息

    git log
    git log --graph --pretty-format:"%h %s"//记录图形展示
    
  • 回滚到任意版本(通过git log可以查看版本号的信息在commit后面的一串数字)

    git reset --hard  版本号
    

在这里插入图片描述

  • 文件回到未修改之前,从红色部分到原来的部分
git checkout -- 文件名
  • 将缓存区的代码回到工作区(与 git add 命令相反)
git reset HEAD 文件名

分支

  • 创建分支
git branch   //查看分支
git branch 分支名   //创建分支
  • 切换分支
git checkout 分支名
git checkout -b 分支名 //创建分支,并进入分支
  • 合并分支(首先要切换回你要合并到的分支(例如你要讲dev分支合并到master分支上,你首先的切换到master分支上))

注意:合并分支的时候可能产生冲突,找到冲突,保留一方代码,重新提交就行

git merge 分支名(需要合并的分支)
  • 删除分支
git branch -d 分支名称

远程

  • 给远程仓库起别名(只提添加一次就行)
git remote add origin 远程仓库地址
  • 将代码推送到远程仓库
git push -u orgin 分支名称
  • 克隆远程仓库的代码(第一次拉代码)

    注意: 此处克隆下来的代码,和远端的代码一样,分支数目也一样,但是你通过git branch查看分支的时候,只能显示master,但是你分支真是存在,你可以通过git checkout 分支名 进行分支的切换。

git clone 远程仓库的地址

**注意:**在不同的地方开发:开发前先拉取代码,写完代码后,记得提交代码(没有提交前,一定不能拉取代码,不然你写的代码就被覆盖了,而且找不到)

  • 克隆代码后,你首次切换进入dev分支进行开发
//将master分支的代码合并到dev(仅执行一次)
git merge master
  • 拉取代码
git pull origin 分支名
  • pull的等价命令
//以下两行代码相当于 git pull origin
git fetch origin dev   //将远程仓库的代码拉到本地仓库
git merge origin/dev   //将本地仓库的代码拉到工作区

rebase(变基)(实践中需重看)

  • 作用:使git记录变得简洁(多个记录,变成一个记录)
git rebase  -i HEAD~3 (注意这里是波浪号,不是短横线)  //找最近的三条记录进行合并
git rebase  -i 版本号   //将最新记录一直回溯到你写的版本号的记录进行合并

将pick改成s,:wq保存并退出修改

注意:合并记录不要合并已经push到远程仓库的记录

  • 将分支中的提交记录,合并成一条分支(不注重里面的细节)
//切换到dev分支
git checkout dev
//将master的记录变基到dev上
git rebase master
//将dev合并到master中
git checkout master
git merge dev
  • 早上提交提交完代码没有push,晚上开发新功能,第二天pull代码,提交记录会产生分支,使用rebase可以不产生分支
git fetch origin dev //将远端的代码拉到本地仓库
git rebase origin/dev//将本地仓库的代码合并到dev分支,但是提交记录不会产生分支

注意:使用git rebase过程中可能会产生冲突,解决完冲突后需要执行(不许要特意去记,产生冲突后报错,报错信息中会有提示)

git rebase -- continue

快速解决冲突

1.安装Beyond compare软件

2.在git中配置

git config --local merge.tool bc3
git config --local mergetool.path 'user/local/bin/bcomp'(这是安装软件的路径)
git config --local mergetool.keepBackup false   //不保留备份文件

3.应用beyond compare 解决冲突(适用冲突比较多的时候)

git mergetool

多人协作开发

  • 为提交重命名为tag(取代版本号)
git tag -a v1 -m "第一版"
git push origin --tags 
  • 给开源软件贡献代码
1.fork源代码(点击fork就行)
  将别人的源代码拷贝到自己的远程仓库中
2.修改自己仓库的代码
3.给源代码的作者提交 修复bug的申请(pull request)

配置文件

  • 项目配置文件: 项目/.git/config
git config --local user.name 'xxx'
git config --local user.email 'xxx'
  • 全局配置文件 : ~/.gitconfig
git config --global user.name 'xxx'
git config --global user.email 'xxx'
  • 系统配置文件: /etc/.gitconfig
git config --system user.name 'xxx'
git config --system user.email 'xxx'
需要root权限

免密登入

  • url体现
原来的地址: https://github.com/justtoday/shop.git
修改后的地址:https://用户名:密码@github.com/justtoday/shop.git
git remote add origin https://用户名:密码@github.com/justtoday/shop.git
git push origin master
  • ssh实现
1.生成公钥和私钥(默认放在~/.ssh目录下,id_rsa.pub公钥,id_rsa私钥)
ssh-keygen
2.拷贝公钥的内容,并设置到github中
3.在git本地中配置ssh地址
   git remote add origin git@git.code.tencent.com:sr-lining/fe/lining-wx.git(注意这里的地址是ssh的不是https的)
   git push origin master 

  • git自动管理凭证

git忽略文件

  • .gitignore(让git不管理的文件)
在gitignore文件中
*.h     //忽略.h结尾的文件
!a.h
.gitignore
files/   //files文件夹下的文件

任务管理

  • issues,文档及bug管理
  • wiki 项目文档说明

标签:origin,11.29,git,--,代码,dev,使用,分支
来源: https://blog.csdn.net/qq_43604714/article/details/121603310

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有