zoukankan      html  css  js  c++  java
  • 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:Usersaccount(你的账户下),里面有个.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文件颜色代表的含义

  • 相关阅读:
    线段树学习笔记
    树状数组学习笔记
    P1816 忠诚 ST表模版
    NOIP 2017 D1T2 时间复杂度
    Ubuntu镜像源
    字符串数据结构模板
    白书的一些奇怪模板
    高精度模板
    大整数类模板
    线段树模板1
  • 原文地址:https://www.cnblogs.com/keep250/p/12124067.html
Copyright © 2011-2022 走看看