Git入门

Git入门

Git教程

Git常用命令

git branch # 查看本地全部分支
git branch -a # 查看本地和远端全部分支
git branch -r # 查看远程所有分支

git reset --soft <commitId> # 撤销提交的commit信息,commit的代码不会消失
git reset --soft HEAD~1 # 撤销提交的commit信息回上1个版本,commit的代码不会消失
git reset --soft HEAD~2 # 撤销提交的commit信息回上2个版本,commit的代码不会消失
git reset --hard <commitId> # 撤销提交的commit信息,commit的代码[会消失]

git checkout <本地分支名> # 切换到本地另外一条分支

git --version / git version # Windows查询当前环境下的Git版本

git fetch -p / git fetch --prune # It will connect to a shared remote repository remote and fetch all remote branch refs. It will then delete remote refs that are no longer in use on the remote repository.

git config # 列出git的所有命令
git config --system --list # 查看系统config
git config --global --list # 查看当前用户(global)配置
git config --local --list # 查看当前仓库配置信息

# 创建版本库
git clone <url> # 克隆远程版本库,一般使用SSH方式

# 修改和提交
git status # 查看状态(当前分支)
git add . # 跟踪所有改动过的文件
git add <file> # 跟踪制定的文件(文件名不需要冒号括起来,这里的文件还需要加上后缀名,即文件类型)
git mv <old> <new> # 文件改名(文件名不需要冒号括起来,这里的文件名还需要加上后缀,即文件类型)
git commit -m "commit message" # 提交所有更新过的文件,并且附上“提交信息”
git push # push当前分支到远程仓库
git push -f # 强制push当前分支到远程仓库
git pull # pull远程仓库到当前分支
git pull -f # 强制pull远程仓库到当前分支
git rm <file> # 删除文件
git rm --cached <file> # 停止跟踪文件但不删除

# 分支与标签
git branch # 显示所有本地分支
git checkout -b [branch] # 新建一个分支并切换到该分支,基来自当前所在分支
git checkout <branch/tag> # 切换到制定分支或标签
git branch <new-branch> # 创建新分支
git branch -m oldbranch # 重命名本地分支
git branch -d <branch> # 删除本地分支
git tag # 列出所有本地标签
git tag <tagname> # 基于最新提交创建标签
git tag -d <tagname> # 删除标签

# 合并与衍合
git merge <branch> # 合并指定分支到当前分支
git rebase <branch> # 衍合指定分支到当前分支
git rebase --abort # 废弃当下rebase

# 远程操作
git remote -v # 查看远程版本库信息
git remote show # 显示远程仓库名字<remote>
git remote show <remote> # 显示指定远程版本库信息
git push # 上传代码以及快速合并
git push <远程主机名> <本地分支名>:<远程分支名> # 不同分支上传代码和快速合并
git pull # 下载代码以及快读合并
git push <remote> :<branch/tag-name> # 删除远程分支或标签
git push --tags # 上传所有标签
git push origin --delete <分支名> # 删除远端分支
git push origin <分支名> # 使用本地分支,在远端创建一个分支,名为<分支名>

# vim命令
# 场景:有时在git bash时会进入vim的编辑界面,此时需要通过Ctrl + C来输入vim命令进行操作
:w 保存文件但不退出vi
:w! 强制保存,不退出vi
:wq 保存文件并退出vi
:wq! 强制保存文件并退出vi
:q 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始在编辑命令历史
q 英文状态下按q键可以退出(比如在git log, git branch -a这样的显示状态下)


Git安装与环境配置

这一步网上有很多教程,不赘述。这里放其中一个教程的传送门,可以直接跳转过去:[Git & GitHub] Windows安装git和环境变量配置

连接Git与GitLab

通过将本地的Git和GitLab进行连接,可以实时保障代码在云端同步。详细的连接方法在这篇文章有较为详细的介绍:使用Git拉取GitLab上的项目

一、安装Git(windows版、其他平台参阅)

去Git的官网,下载安装包,安装时,一路默认

二、配置Git

2.1 在任意地方,创建一个文件夹,保证该文件夹的目录全部是英文

2.2 打开新建的文件夹,在空白处右击,菜单中点选 Git Init Here

2.3 再次右击,菜单中点选Git Bash,弹出命令行

2.4 配置所有本地仓的账号、邮箱

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

2.5 为避免每次远程访问输入密码,使用ssh登陆。ssh应该是与本机信息绑定的,所以每台电脑需要单独生成。

$ ssh-keygen -t rsa -C "youremail@example.com"

2.6 ssh只是本地详细,需要在GitLab中备份,才能被验证。打开自己的GitLab,在My Profile中,点击Add Public Key,title随意。

2.7 key中的内容在本机C盘中,C:\Users\account(你的账户下),里面有个.ssh文件夹(运行2.5会产生),用文本文档打开id_rsa.pub,将里面的内容全部复制到key中,即可;

2.8 到此,基本配置完毕;我们需要获取GitLab上项目的地址,每个项目地址不同,一般在GitLab的Projects中,能找到跟你相关的所有项目,点开一个项目,就能看到项目地址,然后在Git Bash中输入类似如下地址:

$ git clone git@github.com:michiao/gitskills.git

2.9 在克隆仓库时,Git 通常会自动创建一个名为 master 的分支来跟踪 origin/master,如果需要关联不同的分支,使用命令

$ git checkout --track origin/br-2.1.2.1

2.10 将数据同步到本地,一般关联后,直接:

$ git pull

即可完成项目的拉取
至此,我们完成了一个在GitLab上的项目,到本地的过程。

入门

  1. Git之(一)Git是什么
  2. Git之(二)基础命令
  3. Git之(三)辅助命令
  4. Git之(四)分支管理
  5. Git之(五)远程管理
  6. Git之(六)标签管理

使用gitlab做Git仓库,不论对个人还是对团队都是一种监督和激励。

git 几个commit点合并成一个commit点

git log -- 获取git日志
git rebase -i <commit id> --以一个commit为基本
-- squash要被合并的commit,存储修改,结束

本地clone gitlab上的项目

  1. 在gitlab中复制ssh地址
  2. 在需要拉下文件夹的本地目录文件中使用Git Bash Here打开命令输入框
  3. 输入命令:git clone + “复制好的ssh路径”

Git进阶

引入git版本控制(即g)it管理文件之后,文件的颜色不仅仅是白色,会有多种颜色变化,以下对颜色的含义进行阐述:

  1. 红色:创建之后没有add,没提交,未加入版本控制范围之内,这时候文件时红色的,需要先add文件。
  2. 绿色:add之后文件是绿色的(即已加入版本控制),还没有提交(commit)。
  3. 蓝色:原本有一个文件,改动过后没有提交(commit)是蓝色的,提交之后,变成你正常颜色(即白色)。
  4. 白色:加入版本控制,已提交,无改动。
  5. 灰色:版本控制忽略文件。

git使用心得:

  1. commit之前review一下,检查代码时候有错误、是否规范。
  2. 平时开发在本地test分支开发,不要跑到master分支开发。
  3. 在团队合作开发的情况下,push项目到remote上时,先pull一下,让本地项目和remote端在本地合并好,再push上去。

Git图谱

带你一步一步看懂Git图谱

其它

桌面辅助工具:tortoisegit

Git如何回滚一次错误的合并

Git如何回滚一次错误的合并

在gitlab写博客

具体步骤如下:

  1. 在gitlab写博客的工具: https://hexo.io/
  2. cmd直接安装依赖:npm install hexo-cli -g
  3. 用markdown语法,轻量级
  4. 用Node.js把markdown的文件产生做一个博客文件
  5. 用这个可以部署在各大代码Git仓库(静态网站)
  6. hexo的一些介绍。可以部署在Github(麻烦一些)、可以的话部署在GitLab简单。https://search.bilibili.com/all?keyword=hexo

参考资料

  1. Git之(一)Git是什么

  2. Git之(二)基础命令

  3. Git之(三)辅助命令

  4. Git之(四)分支管理

  5. Git之(五)远程管理

  6. Git之(六)标签管理

  7. 团队中的 Git 实践

  8. Git: 教你如何在Commit时有话可说

  9. Git进阶(一):git管理文件之后文件颜色的含义

  10. intellij idea文件颜色代表的含义

posted @ 2019-12-31 13:50  keep250  阅读(276)  评论(0编辑  收藏  举报