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

  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提示的有问题的文件,设置了忽略,用以上命令来恢复跟踪

最新文章

  1. POJ2096 Collecting Bugs
  2. 简单快速部署samba服务器
  3. 轻量级队列beanstalkd
  4. 项目jar包管理,使用 .userlibraries 文件增加jar包的可移植性,明确jar包依赖,多项目共用jar包里
  5. 认证和注册,提交到App Store:
  6. 【HNOI2013】题解 bzoj3139~bzoj3144
  7. 安装lnmp集成环境
  8. CSS预处理器——Sass、LESS和Stylus实践【未删减版】
  9. python第九章:面向对象--小白博客
  10. audio进度条
  11. Artech的MVC4框架学习——第八章View的呈现
  12. Windows下DOS命令大全(经典收藏)
  13. $_SERVER[&#39;HTTP_REFERER&#39;]
  14. word中特殊符号的替换
  15. HDU4006(小根堆)
  16. JZOJ 3521. 道路覆盖
  17. HDU 1532 基础EK Drainage Ditches
  18. Mongodb基本操作入门,增删改查和索引
  19. Git练习2 使用码云
  20. 更精炼更专注的RTMPClient客户端EasyRTMPClient,满足直播、转发、分析等各种需求

热门文章

  1. Java实现第八届蓝桥杯迷宫
  2. Linux目录结构与功能
  3. Python数据分析之双色球高频数据统计
  4. IDEA2020年激活码
  5. Java创建ES索引实现
  6. UniRx精讲(一):UniRx简介&amp;定时功能实现
  7. 如何安装 Sublime text 编辑器相关的插件
  8. 关于thinkphp5下URL附加参数,无法获取到(?参数)
  9. 说说硬件中核心板的作用和优缺点,基于i.MX8M Mini核心处理器平台
  10. Probius:一个功能强大的自定义任务系统