图参考:http://www.ruanyifeng.com/blog/2014/06/git_remote.html

1、GitLab配置

git config --global user.name "xxx"      -- 配置用户名,上传本地 repository 到服务器上的时候,在 Github 上会显示这里配置的上传者信息
git config --global user.email "xxx" -- 配置邮箱
git config --list          -- 查看配置列表
配置 sshkey : 上传代码时使用这个 sshkey 来确认是否有上传权限
1. 创建本地 ssh : ssh-keygen -t rsa -C "注册邮箱"
2. 在 Github 中添加这个 sshkey :
复制 ~\.ssh\id_rsa.pub 文件中的内容;
登录 Github --> Account Setting --> SSH-KEY --> Add SSH-KEY --> 粘贴id_rsa.pub中的内容(GitLab上类似);
3. 验证: ssh -T git@github.com
出现 Hi xxx! You've successfully authenticated, but GitHub does not provide shell access. 说明配置成功,可以连接上 Github

2、建立仓库

git init          -- 创建本地仓库
git remote add origin git@github.com:用户名/仓库名.git
-- 把本地仓库和远程仓库关联起来, 如果不执行这个命令的话,每次 push 的时候都需要指定远程服务器的地址

3、下载/更新

git pull origin master

4、修改、提交、推送

git add
git add -A -- 将改动添加到本地仓库中
git rm xxx -- 从本地仓库中删除指定文件
git rm -r xxx -- 从本地仓库中删除指定文件夹
git rm --cached xxx  --从本地仓库中删除指定文件,但是保留该文件。含义是“取消追踪该文件”。 git commit -m "注释" -- 把本机缓存中的内容提交到本机的 HEAD 里面 git push origin master -- 把本地的 commit push 到远程仓库中

5、使用 .gitignore 文件忽略指定的内容

1. 在本地仓库根目录创建 .gitignore 文件。Win7 下不能直接创建,可以创建 ".gitignore." 文件,后面的标点自动被忽略;
2. 过滤文件和文件夹: [Tt]emp/ 过滤 Temp\temp 文件夹; *.suo 过滤 .suo 文件;
3. 不过滤文件和文件夹: !*.c

6、解决冲突

有的时候执行git pull的时候会提示冲突,又不好解决,怎么办呢:
1. 如果希望暂时保留改动,仅仅并入新配置项,那么就执行下面的命令。然后可以使用 “Git diff -w +文件名” 来确认代码自动合并的情况:
git stash
git pull
git stash pop

2. 如果希望用代码库中的文件完全覆盖本地工作版本:

git reset --hard
git pull

3.  编辑冲突

git mergetool

7、分支操作

 在多人协作时,如果还要切换电脑,那么切换到自己的分支比较妥当,防止干扰别人提交:
git checkout Branch_KuLiuheng        // 切换到指定分支

git checkout .           // 丢弃本地所做的所有修改

git merge --no-ff master   // 将master 主干的内容合并到当前分支

git branch    // 查看本地分支情况
git branch -a  // 查看远端分支情况 git branch -D Branch_KuLiuheng    // 强制删除本地分支

8、撤销

   如果不小心提交了内容希望撤销回去,那么需要输入这些命令:
git revert ***(commit号)

git push
  执行了这个操作后,会产生一个普通的修改,可以直接push发布出去。
  如果想撤销一个“Merge”操作呢,相对要麻烦一点点,如果用上面的命令将会出现一个错误“error: Commit g is a merge but no -m option was given.”,
这是什么意思呢?原因是git认为合并的两个分支地位是等同的,git并不知道应该撤掉哪一个,所以需要我们来指定一下。操作步骤如下:
#git show 83281a8e9aa1ede58d51a6dd78d5414dd9bc8548     // 先看下合并信息,这个提交号是我想撤销的合并操作

commit 83281a8e9aa1ede58d51a6dd78d5414dd9bc8548
Merge: 312a518 fa87415
... ... #git show 312a518 // 分别看下这两个分支的提交信息,来决定撤销哪个
#git show fa87415 #git revert -m 83281a8e9aa1ede58d51a6dd78d5414dd9bc8548 // 这里的"-m 2"就是指定fa87415为master主干,如果是312a518为主干就指定"-m 1"

9、设置Git提交模板

  在用户目录下会有一个 .gitconfig,一般可以通过 git config 命令来设置内容,也可以手动修改。这个文件里面可以指定git提交的默认模板,比如这么写:

[user]
name = 库流亨
email = liuheng.klh@autonavi.com [commit]
template = E:\\personalWorkspace\\gitt\\config\\commit_template.txt

  模板是个文本文件,里面可以随意写下默认希望git填充的内容:

fix #
【问题原因】
【解决方案】
【影响范围】

10、解决多平台git提交时换行符引起的空白提交问题

  默认状态下,git在跨平台提交时,总会因为换行符的不同而导致空白提交,用git diff看不出任何差别,非常烦人。

  我通过 git config去设置 core.safecrlf = true 来自动转换换行符其实挺麻烦的,还不如在工程根目录创建一个 .gitattributes 文件,填写如下内容:

# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto # Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.cpp text
*.h text
*.java text # Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf
*.css text eol=crlf
*.js text eol=crlf
*.md text eol=crlf
*.txt text eol=crlf
*.sql text eol=crlf
*.php text eol=crlf
*.c text eol=crlf
*.cpp text eol=crlf
*.h text eol=crlf
*.java text eol=crlf # Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary

11、日志操作

参考官方文档:https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4%E5%8E%86%E5%8F%B2

GitLab常见使用方法的更多相关文章

  1. Oracle之常见问题诊断方法

    Oracle认证:常见问题诊断方法如下: 1.TNS-12154 Error 或ORA-12154 特征:SQL*NET没有找到连接串或别名 原因1:(1)没有找到TNSNAMES.ORA文件,该文件 ...

  2. 100m和1000m网线的常见制作方法

    100m和1000m网线的常见制作方法 100m和1000m网线的常见制作方法: 5类线(100m)的制作: a: 绿白(3).绿(6).橙白(1).蓝(4).蓝白(5).橙(2).棕白(7).棕(8 ...

  3. OpenStack安装部署管理中常见问题解决方法

    一.网络问题-network 更多网络原理机制可以参考<OpenStack云平台的网络模式及其工作机制>. 1.1.控制节点与网络控制器区别 OpenStack平台中有两种类型的物理节点, ...

  4. Web Deploy发布网站及常见问题解决方法(图文)

    Web Deploy发布网站及常见问题解决方法(图文) Windows2008R2+IIs7.5 +Web Deploy 3.5 Web Deploy 3.5下载安装 http://www.iis.n ...

  5. Python_socket常见的方法、网络编程的安全注意事项、socketsever模块、浏览器中在一段时间记录用户的登录验证机制

    1.socket常见的方法 socket_常见方法_服务器端 import socket from socket import SOL_SOCKET,SO_REUSEADDR sk = socket. ...

  6. 学JS的心路历程 -数组常见处理方法

    昨天我们有提到说for-of和forEach可以用来处理数组,但其实还有很多方法可以更快速及精简代码的达到你要的效果. 话不多说,我们赶紧来看吧! Array.prototype.map() 会回传一 ...

  7. Linux awk命令常见使用方法介绍

    Linux awk命令常见使用方法介绍 By:授客 QQ:1033553122   awk运行方式有三种,其中常用的为命令行方式 awk [-F  field_separator]  '{patter ...

  8. 转载:SQL中Group By 的常见使用方法

    SQL中Group By 的常见使用方法  转载源:http://www.cnblogs.com/wang-meng/p/5373057.html 前言今天逛java吧看到了一个面试题, 于是有了今天 ...

  9. Python爬虫编程常见问题解决方法

    Python爬虫编程常见问题解决方法: 1.通用的解决方案: [按住Ctrl键不送松],同时用鼠标点击[方法名],查看文档 2.TypeError: POST data should be bytes ...

随机推荐

  1. Android 与Unity交互之Toast消息

    Toast.makeText(MainActivity.this,message.obj.toString(),Toast.LENGTH_SHORT).show();这一句代码不能直接放在 publi ...

  2. Android动画之Tween动画实战

    Android动画分为Tween动画和Frame动画,上一节通过一个实例介绍了Frame动画,本节将介绍Tween动画.Tween可以把对象进行缩小.放大.旋转和渐变等操作.     Tween动画有 ...

  3. soj1001算法分析

    题目简单描述: 给定一个长数串,输出可能的字母串解个数.(A对应1,Z对应26) 样例输入:25114 样例输出:6 样例解释:可能的字母串解:YJD.YAAD.YAN.BEJD.BEAAD.BEAN ...

  4. Spring面向切面之AOP深入探讨

    Spring之AOP深入探讨 刚接触AOP之前我已经找了网上各种博客论坛上的关于AOP的文章利于我理解因为听好多人说AOP很复杂,很深奥当我接触之后发现根本不是那么的难于理解.它只是一个基于OOP技术 ...

  5. Java 查漏补缺

    摘自<老马说编程> 计算机程序的思维逻辑 (4) - 整数的二进制表示与位运算 Java中不支持直接写二进制常量,比如,想写二进制形式的11001,Java中不能直接写,可以在前面补0,补 ...

  6. Ashx的处理实例(逻辑处理/js调用)

    做asp.net开发的对.aspx,.ascx和.ashx都不会陌生.关于它们,网上有很多文章介绍.“纸上得来终觉浅,绝知此事要躬行”,下面自己总结一下做个笔记.1..aspxWeb窗体设计页面.We ...

  7. List转MVC DropDownListFor(SelectList)

    /// <summary> /// List转SelectListItem /// </summary> /// <typeparam name="T" ...

  8. tomcat 更新class文件

    在eclipse中写入新代码,debug并没有执行新的代码 原因:部署在tomcat的class文件没有更新,也就是当前的代码没有编译到tomcat的工作目录中 解决方案: project-clean ...

  9. CSS前5课总结

    CSS<精通CSS.DIV网页样式与布局>视频前5课总结: 地对地导弹 第一课: 使用CSS控制页面: 1,行内样式 <p style="color:#0000FF; fo ...

  10. js +1的动画效果

    var fnPlusAnimate = function(str, options){ if (typeof str === 'object') { options = str; str = unde ...