前言:记得在想学习git的时候,一直停留在思想的层面,总没有弄清楚它的运行机制,经常与github混淆,还好找到了一个好的教程,带我领略了git的风采

(一)git的优点

  git的优点:版本控制在本地不需要连网也可以完成对自己文件版本的控制,并且支持分支等等的功能也大大增强了这个git的功能

(二)git的前骤与解疑

  1.git与github有什么关系

  首先git是一个版本控制的软件,github是一个版本控制的大仓库(所有用户都可以往这个仓库里提交代码)

  2.github仓库里面想要贡献代码

  github仓库里面要贡献代码,提交了代码后需要作者同意了,才可以对其源码进行修改的和贡献

  3.git怎么样能够协同

  git在开发中协同时候要以一个一个仓库中添加每个小组成员私钥这样就可以实现协同的开发

  4.使用git需要配置相关参数才可以顺利拉取和上传本地文件

  查看当前用户: git config --list  可以查看当前用户的信息

  git config --global user.name "用户名"

  git config --global user.email "有效的邮箱"

  5.git工作区图解

  

(三)git的使用方法

  1.把文件夹变成仓库

  git init

  2.把修改的文件提交到本地仓库

  查看暂存区状态(git status) ->  把生产区文件到暂存区(git add .)/(git add 文件名)  ->把暂存区文件提交到版本库(git commit -m "备注信息")

  上面简化方法: git commit -am "备注信息"

  3.远程拉取和推送

  查看远程仓库的地址:git remote -v 查看远程仓库和本地关联了的地址

  关联某个关联的仓库:git remote add origin github地址

  移除某个关系仓库的地址: git remote rm origin github地址

  推送本地代码到远程:git push -u origin master(第一次推送加-u,都叫master可以省略,只写一个master即可)

  拉取远程到本地:git pull orgin master 拉取远程仓库代码并合并

  4.解决本地远程仓库不关联的问题(即本地仓库已经不是拉取的而是建立的)

  首先关联地址:git remote add origin github地址  -> 允许两个不相关的文件进行融合:git pull origin master --allow-unrelated-histories ->提交到远程 git push --set-upstream origin master

  5.查看本地修改的记录(多用于版本回退)

  git log --oneline(建议用这个比较简洁)

 

(五)版本回退

  git reset --hard HEAD 回到当前的版本

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

  git reset --hard HEAD^^ 回到当前的版本前两个版本

  git reset --hard af4542g(使用git log --online 获取日志的前7位,可以回到指定的版本)

  git checkout 文件名  撤掉修改(这个只能在没有提交到本地仓库前使用)

(六)解决冲突

  1.解决文件修改了相同位置的冲突

   要先从远程拉取代码下来 git pull ---> 接着在根据提示进入到你想要文件中去合并代码 再次提交就可以解决了

(七)分支管理

  查看当前分支:  git branch

  新增分支   git branch 分支名

  切换分支 git checkout 分支名

  合并分支到master先切换到master分支git merge --no-f dev -m "备注" //把dev分支合并到master,合并也是一个分支

(八)其余的技巧

  查看当前版本  git tag

  新增版本号 git tag v1.0 -m "备注信息"

  推送一个版本同时带版本  git push origin master --tag

  git rm 文件名   //删除文件

  ssh-keygen //一路回车就行接着在远程的设置公钥

  忽略版本控制中的某个文件,不上传新增.gitignore 文件 内容就是想忽略的文件

  别名的设置:  例如:git config --global alias.co checkout

git的那些事的更多相关文章

  1. 关于Git的那些事

    以前一直使用tfs 或者svn当做代码管理器,随着GitHub的越来越火,git的使用人说也越来越多,这不我也开始来折腾git .GitHub的连接速度有的时候很慢,在国内不是太稳定,正好看到开源中国 ...

  2. 关于我学git这档子事

    创建本地分支并切换到该分支 git checkout -b *** 相当于如下2个命令: git branch *** git checkout *** 推送本地开发分支到远程开发分支 git pus ...

  3. 关于我学git这档子事(5)

    对于错误: fatal: refusing to merge unrelated histories 解决之道: git pull origin main --allow-unrelated-hist ...

  4. 关于我学git这档子事(4)

    ------------恢复内容开始------------ 当本地分支(main/dev)比远程仓库分支(main/dev)落后几次提交时 先: git pull 更新本地仓库 再 git push ...

  5. 关于我学git这档子事(3)

    对于如下报错: hint: Updates were rejected because a pushed branch tip is behind its remote hint: counterpa ...

  6. 关于我学git这档子事(2)

    将本地main分支push到远程dev分支(不同名分支间的push) 远程dev分支还未创建 (在push同时创建远程dev分支,并将本地main分支内容上传) git push -u --set-u ...

  7. git笔记

    这篇有关git的博客,写着写着有些崩了.里面有些碎碎念了.下次一定注意这个问题. 创建项目: midir xx :创建xx文件夹 git init : 为当前文件夹创建代码仓库 提交代码: git a ...

  8. Git管理工具对照(GitBash、EGit、SourceTree)

    Git管理工具对照(GitBash.EGit.SourceTree) GitBash是採用命令行的方式对版本号进行管理,功能最为灵活强大,可是由于须要手动输入希望改动的文件名称,所以相对繁琐. EGi ...

  9. Git管理工具对比(GitBash、EGit、SourceTree)

    Git管理工具对比(GitBash.EGit.SourceTree) GitBash是采用命令行的方式对版本进行管理,功能最为灵活强大,但是由于需要手动输入希望修改的文件名,所以相对繁琐. EGit是 ...

随机推荐

  1. codeforces 1065F Up and Down the Tree

    题目链接:codeforces 1065F Up and Down the Tree 题意:给出一棵树的节点数\(n\)以及一次移动的最大距离\(k\),现在有一个标记在根节点1处,每一次可以进行一下 ...

  2. 【BZOJ3625】【CF438E】小朋友和二叉树 NTT 生成函数 多项式开根 多项式求逆

    题目大意 考虑一个含有\(n\)个互异正整数的序列\(c_1,c_2,\ldots ,c_n\).如果一棵带点权的有根二叉树满足其所有顶点的权值都在集合\(\{c_1,c_2,\ldots ,c_n\ ...

  3. BSGS&扩展BSGS

    BSGS 给定\(a,b,p\),求\(x\)使得\(a^x\equiv b \pmod p\),或者说明不存在\(x\) 只能求\(\gcd(a,p)=1\)的情况 有一个结论:如果有解则必然存在\ ...

  4. POI如何自动调整Excel单元格中字体的大小

    问题 目的是要将Excel中的文字全部显示出来,可以设置对齐格式为[缩小字体填充],但是这样的话只能展示出一行数据,字体会变得很小.还有一种办法,设置对齐格式为[自动换行],然后让单元格中的字体自动调 ...

  5. PhoneGap & Cordova 安装白皮书

    1.前题: PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台.它使开发者能够利用 iPhone,Android,Palm,Symbian, ...

  6. iptable四表五链

    链(内置): PREROUTING:对数据包作路由选择前应用此链中的规则: INPUT:进来的数据包应用此规则链中的策略: FORWARD:转发数据包时应用此规则链中的策略: OUTPUT:外出的数据 ...

  7. linux中监控CPU、内存和磁盘状态的shell脚本。(centos7)

    这篇博客中所写的脚本,在实际工作中并没有什么卵用,工作中并不会用到这种脚本去监控.不过自己写一遍,可以让初学者对CPU.内存.磁盘等一些基础知识和基础命令更加了解. 1.利用vmstat工具监控CPU ...

  8. Android平台如何获得屏幕尺寸?

    本文选自StackOverflow(简称:SOF)精选问答汇总系列文章之一,本系列文章将为读者分享国外最优质的精彩问与答,供读者学习和了解国外最新技术,本文为大家讲解在Android平台上如何获得屏幕 ...

  9. Django反正解析路由

    首先要了解为什么要定义反响解析 因为随着功能的增加会出先非常多的视图和对应的路由,有可能项目的一些需要一些模板需要重写路由,或之前配置的正则表达式不够准确,于是就要修改正则表达式,但是路由或正则表达式 ...

  10. TCHAR和CHAR类型的互转,string 转lpcwstr

    https://www.cnblogs.com/yuguangyuan/p/5955959.html 没有定义UNICODE,所以它里面的字符串就是简单用" "就行了,创建工程的时 ...