• git 基本使用


    ### git 的基本使用

    安装

    • 直接下载 https://git-scm.com/downloads

    • 安装完成后,在开始菜单里找到“Git”->“Git Bash”

    • 安装完成后,还需要最后一步设置,在命令行输入:

      • git config --global user.name "Your Name"
      • git config --global user.email "email@example.com"
    • 查看全局配置

      • git config --list

    因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,
    如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。

    注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

    • 选择一个目录文件夹 在这个目录下打开gitBash
    • 通过 git init 命令把这个目录变成git可以管理的仓库

    概念

    • 工作区

      • 就是你在电脑里能看到的目录,git init时的文件夹就是一个工作区
    • 版本库(Repository)

      • 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

        Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

      • git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。

    • 删除文件

      • git rm test.txt
    • 恢复一个文件

      • git checkout -- test.txt
    • 本地库关联到远程库

      • git remote add origin git@github.com:wJiaLiang/vue-cli4.git

      SSH警告 当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告; 这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

    • 从远程克隆仓库

    分支管理

    每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支

    • git checkout -b dev (创建病切换到dev 分支);

    git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
    git branch dev
    git checkout dev

    • git branch命令会列出所有分支,当前分支前面会标一个*号
    • git merge命令用于合并指定分支到当前分支
    • git branch -d dev (删除dev分支)
    • git switch master (直接切换分支到master)
    • git clone -b dev https://www.abc-tem.git (指定 拉取 dev 分支)
    • 总结:
      • 查看分支:git branch
      • 创建分支:git branch name
      • 切换分支:git checkout name 或者 git switch name
      • 创建+切换分支:git checkout -b name 或者git switch -c name
      • 合并某分支到当前分支:git merge name
      • 删除分支:git branch -d name

    标签管理

    发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

    Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。

    tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。

    • 创建标签
      • 切换到某个分支下命令:get tag name
      • 如:get tag v1.0.0

    默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?
    方法是找到历史提交的commit id,然后打上就可以了:

    比方说要对add merge这次提交打标签,它对应的commit id是f52c633,敲入命令:git tag v0.9 f52c633

    • 注意,标签不是按时间顺序列出,而是按字母排序的。可以用git show tagname 查看标签信息:
    • 还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:
      • git tag -a v0.1 -m "version 0.1 released" 1094adb

    标签删除

    • git tag -d v0.1

      因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除

      • 如果要推送某个标签到远程,使用命令git push origin tagname

      • git push origin v1.0

      • 或者,一次性推送全部尚未推送到远程的本地标签:

      • git push origin --tags

      • 如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:

      • git tag -d v0.9

      • 然后,从远程删除。删除命令也是push,但是格式如下:

      • git push origin :refs/tags/v0.9

    本地仓库关联到远程仓库

    • git remote add origin https://github.com/wJiaLiang/vue-cli4.git
    • 如果在使用命令git remote add时报错
    • 这说明本地库已经关联了一个名叫origin的远程库,此时,可以先用git remote -v查看远程库信息:
    • 我们可以删除已有的GitHub远程库: git remote rm origin
    • 关联多个远程库 如: 即关联到gitee 有关联到 gitHub;

    忽略特殊文件

    • 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件

    • 配置规则访问: https://github.com/github/gitignore

    • 忽略文件的原则是:

      • 1 忽略操作系统自动生成的文件,比如缩略图等;
      • 2 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件
      • 3 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
    • 有些时候,你想添加一个文件到Git,但发现添加不了,原因是这个文件被.gitignore忽略了:如:git add App.class

    • 可以用-f强制添加到Git: git add -f App.class

    • 或者你发现,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查:

    git check-ignore -v App.class
    .gitignore:3:*.class	App.class
    Git会告诉我们,.gitignore的第3行规则忽略了该文件,于是我们就可以知道应该修订哪个规则。
    

    搭建git服务器

    Source Tree 使用

    Git有很多图形界面工具,这里我们推荐SourceTree,它是由Atlassian开发的免费Git图形界面工具,可以操作任何Git库。
    首先从官网下载SourceTree并安装,然后直接运行SourceTree。

    补充

    • 删除本地文件更新到线上:
    • 在source tree 中删除后 还是会和其他文件,新建文件一起要加入, 暂存区,但是文件显示成灰色,直接提交更新到远程后,远程仓库也就删除了
  • 相关阅读:
    yii 引入文件
    CodeForces 621C Wet Shark and Flowers
    面试题题解
    POJ 2251 Dungeon Master
    HDU 5935 Car(模拟)
    HDU 5938 Four Operations(暴力枚举)
    CodeForces 722C Destroying Array(并查集)
    HDU 5547 Sudoku(dfs)
    HDU 5583 Kingdom of Black and White(模拟)
    HDU 5512 Pagodas(等差数列)
  • 原文地址:https://www.cnblogs.com/kgwei520blog/p/13692279.html
Copyright © 2020-2023  润新知