这是我参与8月更文挑战的第1天,活动详情查看:8月更文挑战
一、简介
1. Git简介
- 免费开源的分布式版本控制系统
- 用于敏捷高效地处理任何项目版本的管理(代码管理)
- Git 最初是为帮助管理Linux 内核开发而开发的一个开放源码的版本控制软件,目前可安装在windows、mac系统上。
2. Gitlab简介
- Gitlab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
- 作用:分享开源项目的web平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。
- Why Gitlab?Gitlab与Github相比的优点:
- GitLab可以搭建私人的免费仓库;GitHub使用私有仓库是需要付费的;
- GitLab让开发团队对代码仓库拥有更多的控制,部分特色如下:
- 非常便捷的用户界面,在同一界面上获取到:projects,用户,群组和状态;
- 允许免费设置仓库私有权限(private)
- 允许用户选择分享一个project的部分代码(snippet)
- 允许用户设置获取权限,进一步提升安全性(受保护的分支)
- 可以设置获取到团队整体的改进进度(milestones)
二、常用命令
$ git clone -b "<branch名称>" <git的url,不需要加引号> <本地文件夹>
//-b 创建新分支
//克隆git上的代码至本地
$ gitk //图形界面查看版本历史
$ git add -A //ALL提交文件至暂存区
$ git commit -m '<注释>' //提交文件至git
$ git status //查看文件状态
$ git pull --rebase origin master //服务器上最新文件
$ git push origin master //提交值远程仓库
三、设置全局变量参数
#查看当前全部的配置
git config -l
#全局级配置,如果没有仓库级别的特殊配置,默认读取这个配置
git config --global user.name "sunhb"
git config --global user.email "sunhb_xxx@126.com"
#仓库级配置,一般一个项目配置一次
git config user.name "sunhb"
git config user.email "sunhb_xxx@126.com"
--------------------------------------------------------------
$ git config --global gui.encoding utf-8 //设置gui全局编码 防止gitk中文显示乱码
$ git config --local|global|system user.name '' //设置用户
$ git config --local|global|system user.email '' //设置邮件
$ git config --local|global|system --list //查看配置
$ git config --unset --local user.name
$ git config --unset --global user.name
$ git config --unset --system user.name
--------------------------------------------------------------
四、项目关联
1.完全空白项目关联
#git初始化
git init
#设置remote地址
git remote add <地址>
#将全部文件加入git版本管理 .的意思是将当前文件夹下的全部文件放到版本管理中
git add .
#提交文件 使用-m 编写注释
git commit -m <注释>
#推送到远程分支
git push
2.有文件的项目关联
# git初始化
git init
# 设置remote地址
git remote add origin <地址>
# 获取远程仓库master分支上的内容
git pull origin master
# 将当前分支设置为远程仓库的master分支
git branch --set-upstream-to=origin/master master
# 将全部文件加入git版本管理 .的意思是将当前文件夹下的全部文件放到版本管理中
git add .
# 提交文件 使用-m 编写注释
git commit -m <注释>
# 推送到远程分支
git push
五、常见问题
- 1
- 现象:[rejected] master -> master(non-fast-forward) error:failed to push some refs to XXX
- 解决方案: blog.csdn.net/awm_kar98/a…
- 备注:建议使用第一种方案
- 2
- 场景: 本地项目上传至gitee(仓库yyy = 本地项目yyy):git fatal: destination path ' ** ' already exists and is not an empty directory.
- 解决:blog.csdn.net/u011687186/…
- 备注:第六步可能会有问题:
- git push后出现错误 ![rejected] master -> master(non-fast-forward) error:failed to push some refs to XXX
- 执行:
- $ git pull --rebase origin master //本地生成ReadMe文件
- $ git push origin master
- blog.csdn.net/awm_kar98/a…
- 3
- 现象:在执行git pull的时候,提示当前branch没有跟踪信息
- There is no tracking information for the current branch.
- Please specify which branch you want to merge with.
- 解决:blog.csdn.net/sinat_36246…
- 现象:在执行git pull的时候,提示当前branch没有跟踪信息
- 4
- 现象 使用clone拉取项目代码之后进行pull操作时提示关联,但关联的时候提示没有master->fatal: branch ‘master’ does not exist。
- 解决
git pull origin master --allow-unrelated-historiesgit branch --set-upstream-to=origin/master master