git的那些事
前言:记得在想学习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的那些事的更多相关文章
- 关于Git的那些事
以前一直使用tfs 或者svn当做代码管理器,随着GitHub的越来越火,git的使用人说也越来越多,这不我也开始来折腾git .GitHub的连接速度有的时候很慢,在国内不是太稳定,正好看到开源中国 ...
- 关于我学git这档子事
创建本地分支并切换到该分支 git checkout -b *** 相当于如下2个命令: git branch *** git checkout *** 推送本地开发分支到远程开发分支 git pus ...
- 关于我学git这档子事(5)
对于错误: fatal: refusing to merge unrelated histories 解决之道: git pull origin main --allow-unrelated-hist ...
- 关于我学git这档子事(4)
------------恢复内容开始------------ 当本地分支(main/dev)比远程仓库分支(main/dev)落后几次提交时 先: git pull 更新本地仓库 再 git push ...
- 关于我学git这档子事(3)
对于如下报错: hint: Updates were rejected because a pushed branch tip is behind its remote hint: counterpa ...
- 关于我学git这档子事(2)
将本地main分支push到远程dev分支(不同名分支间的push) 远程dev分支还未创建 (在push同时创建远程dev分支,并将本地main分支内容上传) git push -u --set-u ...
- git笔记
这篇有关git的博客,写着写着有些崩了.里面有些碎碎念了.下次一定注意这个问题. 创建项目: midir xx :创建xx文件夹 git init : 为当前文件夹创建代码仓库 提交代码: git a ...
- Git管理工具对照(GitBash、EGit、SourceTree)
Git管理工具对照(GitBash.EGit.SourceTree) GitBash是採用命令行的方式对版本号进行管理,功能最为灵活强大,可是由于须要手动输入希望改动的文件名称,所以相对繁琐. EGi ...
- Git管理工具对比(GitBash、EGit、SourceTree)
Git管理工具对比(GitBash.EGit.SourceTree) GitBash是采用命令行的方式对版本进行管理,功能最为灵活强大,但是由于需要手动输入希望修改的文件名,所以相对繁琐. EGit是 ...
随机推荐
- 大学实验3指导:利用单链表实现A-B
实验目的:深入理解单链表的建立及操作 实验内容: 1.建立单链表A与B 2.实现主要的函数,查找.插入.删除等 3.实现操作A-B 步骤1:包含必要的函数库,对结构体LNode中的抽象数据类型Elem ...
- robotframework用例标签的使用
*** Settings ***Force Tags req-42Default Tags owner-john smoke *** Variables ***${HOST} 10.0.1.42 ** ...
- 怎么用Verilog描述双向IO口
在很多情况下,需要使用双向IO.不过最好谨慎使用,在top层使用.网上很多描述的代码甚至是不可以综合并且有语法错误的,还是老实自己写个模块吧. 如果你需要一个口既做输入端口也做输出端口,那么你就需要去 ...
- 解决sublime text3 中文字符乱码
前言 由于系统编码问题导致的中文乱码解决,linux和windows解决方式都一样. 流程 linux下两步都需要,windows下只需要第二步. 1.在package install中搜索安装:co ...
- CCF WC2017 & THU WC2017 旅游记
day-x 真·旅游 去了杭州的一些景点,打了几场练习赛. day0 报到日 领资料.入住,中午在食堂吃饭,感觉做的挺好的,和二高食堂差不多.晚上还有开幕式. day1~day4 白天讲课,晚上营员交 ...
- 洛谷P1829 [国家集训队]Crash的数字表格
题目描述 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b)表示能同时整除a和b的最小正整数.例如,LCM(6, ...
- 利用LVS+Keepalived搭建Mysql双主复制高可用负载均衡环境
应用背景: MySQL复制(主主,主从...)能在保证数据的备份的同时也能够做读写分离分摊系统压力,但是发生单点故障时,需要手动 切换到另外一台主机.LVS和Keppalived可以设定一个VIP来实 ...
- HDU5758 Explorer Bo 思维+树形dp
题意自己看题目吧,挺短的. 思考过程:昨天感觉一天不做题很对不起自己,于是晚上跑到实验室打开别人树形dp的博客做了上面最后一个HDU的题,也是个多校题..一开始没有头绪了很久,因为起点不固定,所以这1 ...
- BZOJ--1045-- 糖果传递(中位数,排序)
题目链接 :BZOJ--1045-- 糖果传递 我们知道如果不头尾相连的话 直接求一个前缀和 答案为ans+=s[i] 不相连的话就是1 和n之间断开 头尾相连的话就是 在第k个人之间断开 设A[i] ...
- JS小积累(一)— 判断在线离线
JS小积累-判断在线离线 作者: 狐狸家的鱼 Github: 八至 if(window.navigator.onLine==true){ console.log('online'); ... } el ...