创建本地仓库 和 远端共享仓库

  1. 直接下载安装包:Git下载地址
  2. 安装 git,查看 git 版本,git version
  3. 配置项目的 git 账号
    • git config --global user.name "XXX"
    • git config --global user.email "XXX@sina.com.cn"> >
  4. 查看是否配置成功 git config --list
  5. 生成并获取公私秘钥
    • cd ~/.ssh
    • ssh-keygen -t rsa -C "XXX@sina.com.cn"
  6. cat id_rsa.pub 读取公钥,存入 gitlab-->setting--> SSH Keys
    • 在个人设置页面,左边选中SSH and GPG keys,在右边添加公钥,title是key的名称,可以随便取,可更改,key是上面我们获取到的公钥,填写完毕后点击add SSH key按钮,这样远端就添加到了密钥。

  7. 克隆远端仓库至本地:ssh方式:这是一种相对安全的方式
    • 获取所拉取项目的 ssh clone 地址
    • cd 项目目录文件
    • git clone ssh://git@XXXXXXX

http连接方式

  • 这种方式要求project在创建的时候只能选择“Public”公开状态,Private和Internal私有模式下不能使用http方式进行连接。(ssh方式在三种模式下都可以),使用http方式直接连接gitlab显然没有ssh连接方式安全,但是也可以做些安全设置,比如在gitlab本机的iptables里做端口限制(如上是8081端口),添加白名单等。
  • gitlab上创建的项目仓库,要注意该仓库下的members权限,如果某个gitlab用户没有设置在该仓库members权限下,则使用该gitlab用户进行git clone操作可以,但是进行git push则会失败!报错:remote: GitLab: You are not allowed to push code to protected branches on this project.

mac 用户操作命令时报错:

  • 错误信息:Unhandled rejection Error: EACCES: permission denied, 表示没权限,sudo 一下

本地操作-最最最基本用法

操作 命令
查看分支 git branch
创建分支 git branch
切换分支 git checkout
创建+切换分支 git checkout -b
合并某分支到当前分支 git merge
删除分支 git branch -d
强制删除分支 git branch -D
添加文件至暂存区 git add (可多次,可多个文件)
提交暂存区文件 git commit -m <提交信息>
拉取远端至本地 git pull
推送本地至远端 git push
查看提交日志 git log
查看仓库当前的状态 git status
版本回退 git reset --hard commit_id
回退至上一版本 git reset --hard HEAD^
工作现场“储藏” git stash
查看储藏列表 git stash list
恢复储藏区内容 git stash apply(恢复后,stash内容并不删除,需用 git stash drop 来删除)
恢复储藏区内容 git stash pop(储藏应用并删除)
恢复指定的stash git stash list查看 git stash apply stash@{0}

多人协作

  1. push之前,最好先pull一下,因为远程分支可能会有更新,需要先合并并解决冲突
  2. 如果git pull提示no tracking information,则说明本地分支和远程分支没有创建关联,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
  3. 查看远程库信息,使用git remote -v
  4. git 本地分支 track 远程分支
    • 其实在从远程分支分出来的分支都是跟踪分支(track),当对该分支进行 push 和 pull 时,如果该分支和远程分支同名,git会知道推送到远程哪个分支,从哪个远程分支同步到本地分支。其实每次克隆一个仓库时,本地都会新建一个 master分支来track远程的origin/master。如果不同名,我们需要人为指定 git push origin branch_name
    • 如果本地新建了一个分支 branch_name,但是在远程没有,这时候 push 和 pull 指令就无法确定该跟踪谁,一般来说我们都会使其跟踪远程同名分支,所以可以利用git push --set-upstream origin branch_name,这样就可以自动在远程创建一个 branch_name 分支,然后本地分支会track该分支。后面再对该分支使用 push 和 pull 就自动同步。无需再指定分支。
    • 跟踪远程分支:如果远程新建了一个分支,本地没有该分支,可以利用git checkout --track origin/branch_name ,这时本地会新建一个分支名叫 branch_name ,会自动跟踪远程的同名分支 branch_name。

总结

  1. 利用 git push --set-upstream origin branch_name 来在远程创建一个与本地branch_name 分支同名的分支并跟踪;
  2. 利用 git checkout --track orgin/branch_name 来在本地创建一个与远端branch_name 分支同名的分支并跟踪。

git忽略某些文件(文件夹)提交

开发过程中有些缓存文件不想提交,但是git已经维护项目了,这时候使用.gitignore文件忽略也是没有意义的,并不会起作用,可以使用如下方法忽略文件或文件夹提交:

  • 忽略单个文件:git update-index --assume-unchanged /path/file
  • 恢复跟踪: git update-index --no-assume-unchanged /path/file

    回复跟踪使用场景:在拉取代码或者切换分支时,提示有改变未被提交或stash,但是使用git status查看 提示并没有文件更新,git stash 提示 git stash No local changes to save,这时建议查看一下git提示的有问题的文件,设置了忽略,用以上命令来恢复跟踪

Git超详细用法,通俗易懂的更多相关文章

  1. git超详细教程

    GitHub操作总结 : 总结看不明白就看下面的详细讲解. GitHub操作流程 : 第一次提交 : 方案一 : 本地创建项目根目录, 然后与远程GitHub关联, 之后的操作一样; -- 初始化Gi ...

  2. git超详细教程【转】

    转自:http://blog.csdn.net/liuwengai/article/details/52072344 GitHub操作总结 : 总结看不明白就看下面的详细讲解.   GitHub操作流 ...

  3. git超详细教程留着当手册

    GitHub操作流程 : 第一次提交 : 方案一 : 本地创建项目根目录, 然后与远程GitHub关联, 之后的操作一样; -- 初始化Git仓库 :git init ; -- 提交改变到缓存 :gi ...

  4. python beautiful soup库的超详细用法

    原文地址https://blog.csdn.net/love666666shen/article/details/77512353 参考文章https://cuiqingcai.com/1319.ht ...

  5. Django的ListView超详细用法(含分页paginate功能)

    开发环境: python 3.6 django 1.11 场景一 经常有从数据库中获取一批数据,然后在前端以列表的形式展现,比如:获取到所有的用户,然后在用户列表页面展示. 解决方案 常规写法是,我们 ...

  6. GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    最近听同事说他都在使用GitHub,GitHub是程序员的社区,在里面可以学到很多书上学不到的东西,所以最近在准备入手这方面的知识去尝试学习,正好碰到这么详细完整的文章,就转载了,希望对自己和大家有帮 ...

  7. 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    GitHub操作总结 : 总结看不明白就看下面的详细讲解. . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details ...

  8. 转帖: 一份超全超详细的 ADB 用法大全

    增加一句 连接 网易mumu模拟器的方法 adb  connect 127.0.0.1:7555 一份超全超详细的 ADB 用法大全 2016年08月28日 10:49:41 阅读数:35890 原文 ...

  9. (超详细)使用git命令行将本地仓库代码上传到github或gitlab远程仓库

    (超详细)使用git命令行将本地仓库代码上传到github或gitlab远程仓库 本地创建了一个 xcode 工程项目,现通过 命令行 将该项目上传到 github 或者 gitlab 远程仓库,具体 ...

随机推荐

  1. Liunx常用运维命令整理记录

    前言 作为后端开发者,掌握一些常用的运维命令也是很有必要的,本文记录常用Liunx运维命令 基本命令 目录切换 cd base-admin/ 切换到当前目录下的base-admin目录 cd .. 切 ...

  2. Java 8 新特性——检视阅读

    Java 8 新特性--检视阅读 参考 Java 8 新特性--菜鸟 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的 ...

  3. [原创][开源] SunnyUI.Net 开发日志:UIBarChart 坐标轴刻度取值算法

    _ 在开发UIBarChart的过程中,需要绘制Y轴的刻度,数据作图时,纵横坐标轴刻度范围及刻度值的取法,很大程度上取决于数据的分布.对某一组数据,我们很容易就能知道如何选取这些值才能使图画得漂亮.但 ...

  4. Rectangle【思维+模拟】

    Rectangle 题目链接(点击) frog has a piece of paper divided into nn rows and mm columns. Today, she would l ...

  5. 获取随机User-Agent的请求头

    ''' 获取随机User-Agent的请求头 ''' import random #用户代理User-Agent列表 USER_AGENTS = [ "Mozilla/5.0 (Macint ...

  6. foreach 集合又抛经典异常了,这次一定要刨根问底

    一:背景 1. 讲故事 最近同事在写一段业务逻辑的时候,程序跑起来总是报:集合已修改:可能无法执行枚举操作,硬是没有找到什么情况下会导致这个异常产生,就让我来找一下bug,其实这个异常在座的每个程序员 ...

  7. JNI通过线程c回调java层的函数

    1.参看博客:http://www.jianshu.com/p/e576c7e1c403 Android JNI 篇 - JNI回调的三种方法(精华篇) 2.参看博客: JNI层线程回调Java函数关 ...

  8. 阿里巴巴开源canal 工具数据同步异常CanalParseException:parse row data failed,column size is not match for table......

    一.异常现象截图  二.解决方式: 1.背景 早期的canal版本(<=1.0.24),在处理表结构的DDL变更时采用了一种简单的策略,在内存里维护了一个当前数据库内表结构的镜像(通过desc ...

  9. kubernetes资源均衡器Descheduler

    背景 Kubernetes中的调度是将待处理的pod绑定到节点的过程,由Kubernetes的一个名为kube-scheduler的组件执行.调度程序的决定,无论是否可以或不能调度容器,都由其可配置策 ...

  10. mysql错误详解(1819):ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    O(∩_∩)O哈哈~ 在学习 Mysql 的时候又遇到了新问题了 o(╥﹏╥)o 当我在准备为用户授权的时候: grant all privileges on *.* to 'root'@'%' id ...