Git相关内容
先聊一点关于gitlab的内容和github的内容
Gitlab和GitHub,都是我们可以存放代码库的地方。不过Gitlab可以免费的存储私人代码,GitHub需要花钱才能够存储私人代码库,不过我想人家的初衷可能是本着尽量让你开源的动机。哈哈。
为了管理好我们的代码库,要准备好这么几样
- Mac的常用终端命令:
- 查询常用Mac 终端命令后可以发现,和Unix常用命令好像一样。可能是Mac OS的最底层基于Unix吧。
- Git的常用命令
- 推荐的一些博客:Git帮助文档 猴子都能懂的Git Git中文常用命令 Git中文常用命令(简短)
谈一点关于Gitlab的使用部分
- 申请账号
- 我之前都是用GitHub,公司用过Gitlab,不过那也是公司给的授权的邮箱账号直接登录就好了,如果是自己注册Gitlab失败的话,可以试试用第三方登录(比如用gmail或者是直接也用GitHub的账号登录)
- 谈谈登录后提交代码相关的内容,我们需要配置好SSH key的后才能有权限操作代码库
- 生成SSH key
- 一点注意事项:当我们生成完了SSH key以后注意到 相应的目录下(家目录的 .ssh 的文件里边)。
- .ssh是隐藏文件,如果是没有看到相应文件使用快捷键("Command" + "Shift"+ "."可以显示隐藏文件、文件夹,再按一次,恢复隐藏;)。
- 等我们生成好了ssh key注意在相应的目录下是否真的有了记得验证,还有记得把相应的公钥添加到Gitlab要求添加的SSH那里,否则可能在pull 或者是push代码的时候出现permission的问题
- 还有一点注意的是,如果是选用SSH 的方式pull 或者是push代码,如果是有结合使用Source Tree的话,注意要把远端的地址,设置成SSH 形式的地址,避免出现问题
- 还有一点是有的时候我们的远端的master可能设置了不能直接从本地推送到远端的master分支,如果是那样的话,可以先推送到dev等分支,然后在Gitlab里边再合并
- 还有如果要是要修改SourceTree默认的推送的是https改成SSH的方式的话可以使用vi编辑相应文件做改动,这个以后补上
光说不练假把式
- 常用的Mac终端命令
- ls : 列出当前路径下的文件列表(在生成好ssh key后可以在目录下看看ssh key是否真的存在了)
- "cmd" + "k" (清空名目上的内容)
- cd ~ : cd到家目录 相应的再cd ~/.ssh 就可以到 存放ssh key的目录下了 cd - 是返回到上一级目录
- pwd:打印当前的文件所在路径(可以在生成好了在切换进入到.ssh 文件下后,检测一下是否是在.ssh 目录下)
- cat 文件名 : 查看文件内容
- control + z 终止终端一些未完的输出(比如说在用git log的时候不想看后边的内容的时候)
- control + c 终止任务(比如说是在使用cocoapods的update的过程中想终止的时候)
- mkdir 文件名 :创建文件
- git init : git初始化
- git config user.name : 查看用户名
- git config user.email :查看用户email
- git config user.name "ITCoderW" : 设置用户名
- git config user.email "itcoderw@gmail.com" : 设置用户邮箱 (哈哈写个高逼格邮箱)
- git config --global user.name :查看全局配置的用户名
- git config --global user.email : 查看全局配置的用户邮箱
- git config --global user.name "ITCoderW":设置全局配置的用户名
- git config --global user.email "itcoderw@gmail.com": 设置全局配置的用户邮箱
- git add . : 把所有的改动的文件存储到暂存区
- git stash :把所有的没提交的文件删除掉
- git commit -m "提交信息" :提交的时候填写的提交信息
- git log :查看提交的历史记录 git log --oneline :(查看的历史记录都是以 一次提交占用一行的形式呈现的)
- git status :
- git reflog :查看历史记录包括那些回退过的版本的git记录
- git reflog 可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录:
- 参考网址:http://blog.csdn.net/ibingow/article/details/7541402
- git branch :查看当前所有分支
- git branch "liveFeatureBranch" : 如果还没有liveFeatureBranch 就会创建一个liveFeatureBranch (注意在哪个分支下git branch 的,则新生成的分支将会和其分支下的内容一样)
- git checkout "liveFeatureBranch" : 切换到liveFeatureBranch
- git branch -d "liveFeatureBranch" : 删除liveFeatureBranch
- git branch(如果是显示master) git merge dev :则为合并dev到master : 合并dev到merge之前的git branch显示的分支
- git reset --hard ^ : 退回到上次提交
- git reset --hard "某次提交的提交编号" : 退回到提交编号的那次提交
- git clone "https/SSH代码库网址" 克隆代码
- git remote -v : 查看远端的信息
- git log --left-right --oneline origin/分支名称
- git remote add origin "远端地址" : 添加远端地址(可以把用终端的形式的本地和远端联系起来)
git remote set-url origin "远端地址" (改变远端的地址的时候使用)
- git push origin master : dev : 把本地的master分支推送到远端的dev分支
- git push -f : 强行推送
- git pull origin master:dev :把远端的dev拉取到本地的master
- git pull相当于git fetch 然后再merge
- git tag "version x" :打标签版本号
常用的Git命令(其实我还总是终端命令结合着SourceTree 一起使用,因为感觉还是用SourceTree可以很直观的看到代码的改动的地方)
可能遇到的问题:
- 提交到git上的文件只有一个文件夹,目录下的内容没有提交上去:
- 可能是自己要添加的文件里边包含.git 文件,删除相应的.git 文件就可以成功提交文件下的所有内容了
- 参考网址:
Git Add . 无法添加文件夹下的文件git push后在github上文件夹是灰色的?github上文件夹都是灰色-解决办法
- 需要版本回退使用:
- git reset --hard "提交编号" : 回退到某个版本
- git push -f : 强行推送
- git reflog : 查看那些之前可能被你回退的比较全的log(备用)
- 参考博客:http://blog.csdn.net/fuchaosz/article/details/52170105
2018-03-25更新:记录一次git的问题:
问题:使用Xcode提交代码的时候,发现后来没提交到github上去;
检查办法:
但是在使用Xcode进行提交的时候,发现上次提交的文件已经不显示了;
使用终端命令重新git clone一份代码的时候,发现相关的代码确实没有在github上出现;
使用git log检查的时候,发现有相关的提交的信息,看来是相关的部分的代码是git commit -m "" 那部分执行成功了,但是git push没有成功;
于是在终端重新使用git push做了操作,到github上看,代码显示正常了。
问题:commit的某些文件丢失了
使用git reflog的方式查看到了丢失的commit的信息
之后又使用git reset --hard commit标识 回到了丢失的commit的信息的部分 项目中的文件就显示正常了
扩展内容:
先写到这么多吧,持续更新
如有问题,敬请指正
如需转载,请注明出处,谢谢!
Git相关内容的更多相关文章
- Git相关操作汇总
git clone: 正如上图,当我们打开终端的情况下,默认我们所在的目录是在/home/shiyanlou的,大家可以在终端输入以下命令把目录切换到桌面cd /home/Desktop这个时候输入 ...
- git相关整理
title: git相关整理 toc: false date: 2018-09-24 20:42:55 git merge 和 git merge --no--ff有什么区别? git merge命令 ...
- linux用户权限相关内容查看
linux用户权限相关内容查看 1 用户信息 创建用户一个名为 webuser 的账号,并填写相应的信息: root@iZ94fabhqhuZ:~# adduser webuser Adding ...
- SharePoint安全 - 在Goolge和Bing中查找SharePoint相关内容
博客地址 http://blog.csdn.net/foxdave 本篇提供两个查询串字典,分别对应Google和Bing的搜索,用来查询SharePoint网站的相关内容 Google ShareP ...
- 韩顺平细说Servlet视频系列之tom相关内容
韩顺平细说Servlet视频系列之tom相关内容 tomcat部署项目操作(注意:6.0版本以后的支持该操作,5.x版本需要另外配置?待验证!) 项目发布到tomcat的webapps文件下,然后启动 ...
- jQuery实现页内查找相关内容
当需要在页面中查找某个关键字时,一是可以通过浏览器的查找功能实现,二是可以通过前端脚本准确查找定位,本文介绍通过jQuery实现的页面内容查找定位的功能,并可扩展显示查找后的相关信息. 本文以查找车站 ...
- Struts2(四)——页面相关内容
上篇博客总结了数据流转各个方面的内容,这篇重点说一下框架对于界面上知识. 一,说到页面,记得在总体介绍中,说到Struts2比Struts1的一方面优势就是它支持更多的视图技术(Freemarker, ...
- 学习笔记之html5相关内容
写一下昨天学习的html5的相关内容,首先谈下初次接触html5的感受.以前总是听说html5是如何的强大,如何的将要改变世界.总是充满了神秘感.首先来谈一下我接触的第一个属性是 input的里面的 ...
- 基于KNN的相关内容推荐
如果做网站的内容运营,相关内容推荐可以帮助用户更快地寻找和发现感兴趣的信息,从而提升网站内容浏览的流畅性,进而提升网站的价值转化.相关内容 推荐最常见的两块就是“关联推荐”和“相关内容推荐”,关联推荐 ...
随机推荐
- 深入学习keepalived之一 keepalived的启动
1.keepalived的启动过程: 启动健康检查子进程和vrrp子进程.其中_WITH_LVS_,_WITH_VRRP_在configure和configure.in文件中定义. 源码如下: /* ...
- 微信小程序转百度小程序修改
百度小程序对比微信小程序(最初版):[设备]项里没有内存监控.iBeacon.wifi.蓝牙.用户截屏.手机联系人.NFC[位置]项里没有打开地图选择位置[界面]项里没有绘图功能.没有节点信息获取功能 ...
- 【卷土重来之C#学习笔记】(三) 类型 存储和变量
.c#程序是一组类型声明 ※C#程序或DLL的源代码是一组一种或多种类型声明 ※对于可执行程序,类型声明必须有一个包含Main方法类 ※命名空间是一种把相关的类型声明分组并命名的方法.既然程序是一组相 ...
- HDU 1394——Minimum Inversion Number——————【线段树单点增减、区间求和】
Minimum Inversion Number Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & ...
- 统一latext在vsc的markdown+math和有道云笔记里的出发方式
起因 前段时间在有道云笔记上写笔记,里面使用latex来记录数学符号,有道云的latex行内触发模式为 `$ latex $`, 之后我在visual studio code里面使用markdown+ ...
- flutter Failed to setup Skia Gr context导致白屏
添加 --enable-software-rendering参数运行 G:\soft\flutter\project\hello_world> flutter run --enable-soft ...
- iPython与notebook的基本用法
1 Ipython 安装 pip install ipython 2 Notebooke 基本用法 启动ipython使用ipython 启动notebook 使用 ipython notebook ...
- 【Linux】Vmware&Linux 网络配置
Vmware 网络设置 Linux 网络设置 注:本实验使用Linux 版本为 RedHat 6.3 Vmware 网络设置 1.Vmware 网络工作模式 bridged(桥接模式) -- 网络能提 ...
- 在Android Studio上进行OpenCV 3.1开发环境配置
开发环境: Windows 7 x 64 家庭版 Android Studio 1.5.1(Gradle版本2.8) JDK 1.8.0 Android 6.0(API 23) OpenCV 3.1. ...
- JUnit_BeforeClass不报异常的 bug 处理
1.try{} cathce(Exception e){}将觉得会出问题的地方括起来测试. 2.main方法调用出问题的方法.