23.git简单使用
git:主要是为了收集命令
git客户端下载:
Git是GitHub开源社区的版本管理系统;
下载地址:https://git-scm.com/download/
Git的安装:一路使用默认设置进行安装即可,最后一步时选择将GitBash添加到桌面和快速启动菜单;
双击启动GitBash命令行工具;
@本地代码提交
在新建了代码文件和文件夹以后,使用git add xxx命令,可以将指定的文件和文件夹添加到缓存区;
缓存区是未受控代码和仓库代码的缓冲地带,缓存区中的文件可以随时撤销受控;
git add . 或git add -a 是添加目录下的所有内容到缓存区;
通过git rm –cached xxx命令可以撤销指定文件的受控状态,git rm -f xxx则是撤销受控并删除该文件;
通过git rm -r –cached xxx命令可以递归撤销文件夹的受控状态,git rm -r -f xxx则是递归撤销受控并删除该文件夹;
通过git commit xxx -m “提交日志”的方式,可以将缓存区中的代码提交到本地仓库;
通过git status可以查看当前目录状态
@版本日志
git log命令可以查看版本日志,日志记录了提交的序列号、作者和日期信息 ,
git log –pretty=oneline则是以单行样式显示版本日志
git diff 版本序列号1 版本序列号2:比较两个版本的区别,这里的–shortstat选项是以简短样式查看区别;
通过git xxx -h及git xxx –help可以查看相关命令的简版和网页详情版的帮助信息
@版本回滚
既然有了版本的序列号,我们就可以回滚到任意指定的版本了,其命令是:git reset –hard 版本号
版本序号还可以通过git reset –hard HEAD^来回退到最新版的上一版;
git reset –hard HEAD^^回退到最新版的上两个版本,这里^可以有任意多个,然而回退三个以上版本时,我们选择使用:git reset –hard HEAD~23来指定具体回退多少个版本;
版本回滚功能在修复代码错误,尤其是复杂或致命错误时具有显而易见的便利性;
@什么是SSH密钥配对
Git的本地仓库与远程仓库交互的方式主要有四种:关联、克隆、拉取、推送;
本地无论关联还是克隆远程仓库,都必须要先获得远程仓库的地址;
远程仓库的地址有两种格式可供选择,一种是ssh协议格式,一种是https协议格式;
以http格式进行关联或克隆的本地仓库,每次向远程推送时,都需要输入远程仓库管理员的邮箱和密码;
以ssh格式进行关联或克隆的本地仓库,如果想要和远程仓库进行推拉操作,则需要先完成SSH秘钥的配对;
SSH秘钥对(一把公钥+一把私钥)的作用是用作本地仓库和远程仓库通信的信物;
远程仓库持有开发者的公钥,本地仓库持有开发者的私钥,当公钥和私钥能够配对时,该开发者的本地仓库就可以和远程仓库进行推拉操作了
@概述
本地仓库同步远程仓库的方式有两种:关联、克隆;
关联或克隆远程仓库后,可以做拉取和推送的工作,通俗地说,就是下载和上传代码;
本地仓库关联远程仓库的命令是:git remote add origin 远程仓库地址,此时的本地仓库就拥有了远程仓库的版本信息了,接下来就可以与远程仓库进行拉取、推送等操作了;
克隆是直接把远程仓库的主分支内容连同版本信息一起复制到本地,其命令是:git clone 远程仓库地址;
拉取是将远程仓库的指定分支下载到本地仓库,其命令是:git pull origin 分支名
推送是将本地仓库分支同步到远程仓库,其命令是:git push origin 分支名;
@关联并推拉
# 进入本地仓库目录,这个目录是已经被git init过的
cd local_repo_path
# 关联远程仓库,远程的版本信息也一并被整合到了本地
git remote add origin your_repo_address
# 取消当前的远程仓库关联:
git remote rm origin
# 查看本地的远程连接(就是查看你关联了那几个线上的git仓库地址)
git remote -v
# 拉取远程主分支的代码到本地
git pull origin master --allow-unrelated-histories
# 提交所有未受控的代码
git add . commit . -m "xxx“
# 将本地仓库的代码(master分支下)推送到远程
git push origin master
# 如果前面拉取的动作报出 “拒绝合并不相干的历史”时,追加一个同意放行的参数即可# 即:
git pull origin master --allow-unrelated-histories
# 这种错误只有初次拉取时才会发生
@概述
分支的创建和管理是版本控制系统(VCS)的重要内容;
分支的存在使得团队成员之间既可以分工协作,又互不影响;
团队成员的日常工作是在各自的分支上代码、提交、推拉;
当工作分支有了阶段性成果时,再由一个主干分支去对它们进行一一合并,实现成果的合并
@分支与合并策略
日常的开发工作由不同成员在不同工作分支上分头进行,并行开发互不干涉;
dev分支不定期合并工作分支的阶段性成果;
dev分支通过不断合并工作分支,完成了所有需求后,提交测试;
master分支在dev分支测试通过后,对其进行合并,再复测一下就可以上线了;
1.0版本上线后,dev分支和众多工作分支再以相同的方式继续迭代开发2.0版本;
@相关命令
-----↓创建和切换分支-----
git branch // 查看所有分支
git branch 分支名 // 创建本地分支
git checkout 分支名 // 切换到指定分支
git checkout -b 分支名 // 创建并切换到分支
-----↓删除分支-----
git branch -d 分支名 //删除本地分支
git push origin --delete 分支名 // 删除远程分支
-----↓推拉分支-----
git pull origin 分支名 //拉取分支
git push origin 分支名 //推送分支到远程
git push --set-upstream origin 分支名 //推送分支
-----↓合并分支-----
git merge 分支名 //合并分支(要先checkout到主分支)
@案例介绍
# 关羽创建分支、工作、本地提交、push远程
git clone remote_repository_path
git checkout -b guanyu
git push origin guanyu
git add .git commit -am '关羽在本地提交’
git push origin guanyu
# dev分支合并关张并push远程
git pull origin devgit checkout dev
git merge guanyugit merge zhangfei
git push origin dev
# master主分支合并dev并push远程
git pull origin master
git checkout master
git merge dev
git push origin master
# 张飞创建分支、工作、本地提交、push远程
git clone remote_repository_path
git checkout -b zhangfei
git push origin zhangfei
git add .git commit -am '张飞在本地提交’
git push origin zhangfei
最后加一篇学习使用的博客:https://blog.csdn.net/liyayunwxc/article/details/10342573
LF和CRLF问题:
https://www.cnblogs.com/sminocence/p/9357209.html 博客里面写了解决办法
本地拉取其他分支代码:
git checkout -b dev origin/dev(远程分支名)
git pull origin dev 来去远程分支到本地
----------------------------------------------------------
方式二:
git fetch origin dev(dev为远程仓库的分支名)
git remote问题:
1.如何查看当前远程Git库源地址呢?
$git remote -v
$git remote -version
//以上两种方法都是查看当前Git库源地址的
2.这时如果你想修改当前的源地址:
$git remote set-url origin [GIT URL]
//orgin为当前源地址名,[GIT URL]为欲修改源地址
3.添加一个新的Git库源地址:
$git remote add [NAME] [GIT URL]
//[NAME]为新的Git库源地址名,[GIT URL]为新的git库源地址
4.删除一个Git库源地址:
$git remote remove [NAME]
$git remote rm [NAME]
//[NAME]为Git库源地址名
注意:其中删除源需要谨慎,到现在为止并没有找到恢复源的命令,除非你同事保存了,要不然没法找回
23.git简单使用的更多相关文章
- 小丁带你走进git世界一-git简单配置
小丁带你走进git世界一-git简单配置 1.github的简单配置 配置提交代码的信息,例如是谁提交的代码之类的. git config –global user.name BattleHeaer ...
- git简单入门
git简单入门 标签(空格分隔): git git是作为程序员必备的技能.在这里就不去介绍版本控制和git产生的历史了. 首先看看常用的git命令: git init git add git comm ...
- Git简单生成生成公钥和私钥方法
Git简单生成生成公钥和私钥方法 Git配置 Git安装完之后,需做最后一步配置.打开git bash,分别执行以下两句命令 git config --global user.name “用户名” g ...
- 猫猫学iOS 之第一次打开Xcode_git配置,git简单学习
猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:错误 当第一次打开Xcode我们进行commit操作的时候会 ...
- Git简单多人协作
感谢廖雪峰老师,引自他的Git教程. Git简单多人协作 首先,可以试图用git push origin <branch-name>推送自己的修改: 如果推送失败,则因为远程分支比你的本地 ...
- git简单使用教程
git 的基本使用指令 我们先来简单熟悉一下 git 的简单使用的指令, 作为最基本的 git 指令一定要熟悉 12345678910111213141516171819202122232425262 ...
- Git简单介绍以及使用入门
Git Git:分布式版本控制系统, 此外还有 SVN (集中式版本控制系统) 下载地址(阿里云镜像) :CNPM Binaries Mirror (npmmirror.com) Git Bash : ...
- Git简单应用(1)
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 1.Windows安装git msysgit是Windows版的Git,从https://git-for-windows. ...
- GIT简单操作
以下只是简单的bash的操作命令,个人比较喜欢用gui 打开 git bash here git clone https://github.com/自己的名字/trunk git checkout + ...
随机推荐
- 搭建elk集群 disabled in libcurl elasticsearch-6.2.2 更新license 版本
0.logstash的部分配置 output { stdout {codec => rubydebug} elasticsearch { hosts => ["172.31.25 ...
- the property “***” on could not be set to a null value
在建立EF框架的时候,创建实体时由于部分数据库类型和.net类型不同,比如int类型,在数据库中是可空类型,而.net中是不允许的,所以创建实体的时候,数据库的int类型对应的实体类型应该为int?类 ...
- eclipse 导出jar 没有主清单属性的解决方法
eclipse编写导出的jar文件,运行出现了没有主清单属性,问题在哪里呢?有下面几种方法: 1. 导出jar文件的时候选择[可运行的jar文件]而不是[Jar文件]即可,如下图: 2. 在jar文件 ...
- Django2.2 连接mySQL数据库
一.Django2.2连接数据库(踩雷) 首先,Django2.2自带的是sqlite3数据库,但我们学的是mysql,因此学着连接(在mysql环境搭建成功的情况下)---参考博客: https:/ ...
- [Python3] 041 文件 持久化
目录 文件 持久化 1. pickle 1.1 例子1 1.2 例子2 1.3 注意 2. shelve 2.1 举例 2.2 特性 2.3 强制写回 2.4 使用 with 管理上下文环境 文件 持 ...
- iframe在firefox下的无法正常target问题
今日在改一个网站的时候碰到个奇葩的问题. 把网站按照结构划分,做了个主页面,嵌入iframe,设定该iframe的name,主页面上的链接使用target保证在iframe中打开该链接. 听上去很常规 ...
- java-selenium浏览器常用操作命令
一.浏览器操作命令 启动火狐浏览器(49版本以下) System.setProperty("webdriver.firefox.bin","D:\\Firefox\\fi ...
- 【2017.12.02】C组比赛总结
这次考得不怎么样,只有200分! T1:读书 这题水水水! 这题就是一道循环题嘛! 直接一边循环一边做就好了! T2:恐怖分子 这题我是直接暴力的. 这题就是求至少用多少条经过(x0,y0)的不同直线 ...
- Django项目运行端口被占用
error:以一种访问权限不允许的方式做了一个访问套接字的尝试,是8000端口被其他程序占用了,杀掉占用的程序就可以 (1)查找哪个进程占用了8000端口 `E:\sign_system\guest& ...
- Hive 教程(二)-认知hive
在大数据领域,hive 的位置非常重要,排名前三的大数据工具为 spark.hive.kafka 什么是hive 在大数据领域有 3 种需求场景:传输.存储.计算: hive 是一个处理海量的结构化数 ...