git相关

git

  • git
    • git 概念
    • git的文件分类
    • 基本使用
    • 检出和重置
      • check
      • reset
    • 移动和删除
    • 远程仓库
    • 分支相关

git 概念


  • Repository 仓库、版本库
    git 初始化后,会在当前目录生成一个.git目录, 这就是版本库

  • Workspece 工作区间、工作区
    .git所在的目录就是工作区,一般是项目的根目录

  • index索引
    介于工作区和版本库之间,暂存修改。

  • remote 远程版本库
    网络上的另一个版本库, 可以和本地库交互

git的文件分类


  • 追踪的Tracked ,已经加入版本库的文件
  • 未追踪的Untracked,未加入到版本库的文件
  • 忽略的Ignored,git不在关注的文件,例如一些临时文件,位于.gitignore文件中,目录以/结尾/,行起始的!是取反。

基本使用


  • git init 初始化一个版本库,在当前目录生成一个.git目录
  • git add . 向暂存区添加文件,新文件未被追踪时,只能够通过add向暂存区添加。
  • git status 查看git状态,列出当前git状态,比较HEAD和暂存区还有当前工作区间之间的区别。
  • commit 提交更改到版本库,-m填写本次日志消息,必须写。
    git的提交分两个步骤:
    暂存变更:add作用是把新文件或者新的改动添加到暂存区中。
    提交表更:commit提交的是暂存区的改动,而不是物理文件当前的改动,提交到当前分支,默认是master分支。
    当改动的文件已经被追踪时,可以使用git commit FILE命令直接执行
    git commit -a会把所有追踪的文件的改动自动暂存,然后commit
    --amend 会将当前暂存区的内容添加到最后一次的commit上,作为增补。

  • git diff 比较各种差异

    • git diff 查看被追踪文件未暂存的修改,比较暂存区和工作区。
    • git diff --cached 查看被追踪文件暂存的修改,比较暂存区和上一次commit的差异。
    • git diff HEAD 查看被追踪文件,比较工作区和上一次commit的差异,HEAD指代最后一个的commit。
  • HEAD 指代最后一的commit
    HEAD^ ,指代上一次提交
    HEAD^^, 指代上上一次提交。
    HEAD~n, 上n次提交。

检出和重置


  • check

    • git checkout 列出暂存区可以被检出的文件。
    • git checkout FILE 从暂存区检出文件到工作区,就是覆盖文件区文件,但是不清除stage.
    • git checkout commit file 检出某个commit的指定文件到暂存区和工作区。
    • git checkout . 检出暂存区的所有文件到工作区。
  • reset

    • gut reset 列出将被reset的文件。
    • git reset file 重置文件的暂存区,和上一次commit一致,工作区不影响。
    • git reset --hard 重置暂存区和工作区,与上一次commit保持一致。
    • git reflog 显示commit的信息,只要HEAD发生变化,就可以在这里看到。
    • git reset commit 重置当前分支的HEAD为指定 commit, 同时重置暂存区,但工作区不变。
    • git reset --hard [commit] 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致。
    • git reset --keep [commit] 重置当前HEAD为指定commit,但保持暂存区和工作区不变。

移动和删除


  • git mv src dest 改名,直接把改名的改动放入暂存区。
  • git rm file 会同时在版本库和工作目录中删除文件,真删除。
  • git rm --cached file 将文件从暂存转为未暂存,从版本库删除,但不删除工作目录的该文件,即文件恢复成不追踪的状态。
    以上都算是改动,必须commit才算真的改动了。

远程仓库


  • ssh-keygen -t tsa -C "[email protected]" 生成ssh密钥,位置默认在用户home目录下的.ssh 文件夹。

  • git config --global user.name "YOURNAME"

  • git config --global user.email "YOUREMAIL"上面这两段代码来设置git默认的姓名和email,都体现在gitcommit信息上。

  • git clone REPO 克隆远程仓库。

  • git remote add origin REOP 关联远程版本库,远程版本库名origin,这是个习惯用法,将建立origin和后面的url的映射,这些信息都保存在.git/config文件的新字段[remote :”origin”]中。

  • git push -u origin master 将版本库推动到远端,-u 第一次远程推送的时候加上,以后就可以不用-u的参数,可以git push origin master 甚至可以直接git push就可以了。

分支相关


  • git checkout -b dev 创建分支并切换到dev分支

  • git branch NAME 创建分支

  • git branch 列出所有分支

  • git checkout master 切换到master分支

  • git merge dev 将dev分支的工作合并到当前分支上

  • git branch -d dev 删除dev分支

  • git log --graph 查看分支合并图

你可能感兴趣的:(linux,基础)