Git基本使用

338 阅读3分钟

这是我参与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…
  • 4
    • 现象 使用clone拉取项目代码之后进行pull操作时提示关联,但关联的时候提示没有master->fatal: branch ‘master’ does not exist。
    • 解决
      1. git pull origin master --allow-unrelated-histories
      2. git branch --set-upstream-to=origin/master master

参考链接: