git笔记

作者: 咖喱py | 来源:发表于2019-05-03 01:56 被阅读12次

纲领:

其实git的学习就是四个区之间关系转换的学习,以及各个区本身一些操作的学习。每个操作都有其特定的作用区。学习时注意区分,可事半功倍!

注:尤其要注意,git是以修改为单位的。

一、配置

关键命令: "git config"

git config --global user.name "yourName"
git config --global user.email "email@example.com"

二、初始化

关键命令:"git init"

//切换到工作目录,然后执行初始化命令
git init

三、添加文件

关键命令:"git add xx.file"

git add test.txt

四、提交文件

关键命令:"git commit -m "添加了xx.file文件""

git commit -m "添加了test.txt文件"

五、状态查看

关键命令:"git status"

git status 

六、查看差异

关键命令:"git diff xx.file"

注:对比的是工作区与暂存区

git diff test.txt

七、查看版本历史

关键命令:"git log" 、"git log --pretty=oneline"

注:查看的都是repo库的改动

git log

#简化输出可用参数--pretty=oneline
git log --pretty=oneline
#等号两边没有空格

八、回退历史版本

关键命令:"git reset --hard commit_id"

注:此命令其实就是修改repo库head指针的指向位置

参数解释:

git reset有三个主要参数

  • --soft -------->只有repo动
  • --mixed ----->repo和stage动(注:默认缺省值
  • --hard -------> repo、stage、workspace都动

commit_id主要有两种表示方式

  • HEAD关键字表示
  • hash值前四位表示
git reset --hard HEAD^
#--hard 表示三个区域完全回退
#HEAD^表示回退的目的地,^号表示HEAD指针的上一个版本。HEAD^也可用commit id的hash值的前几位替代,git会自动索引。
git reset --hard 142e


九、回流

关键命令:"git reflog"

注:作用与repo库

git  reflog 
#用于回流回退过的情况

十、放弃工作区的修改

关键命令:"git checkout -- xx.file"

注:从暂存去签出,覆盖工作区。

git checkout -- test.txt
# --不能少

十一、删除暂存区的内容(参考第八条)

关键命令:"git reset HEAD xx.file"

参数解释:

  • 默认缺省--mixed
  • xx.file在单一文件时可缺省,默认整个文件夹同时修改
  • HEAD指向当前head指针
    注:本质依旧是修改repo库的head指针,但因为缺省值同时修改了stage,所以效果像是删除了暂存区。
git reset HEAD test.txt
#此操作不会影响工作区

十二、删除工作区文件

关键命令:"git rm xx.file"

注:在暂存区工作,同git add xx.file,所以还需要一步commit

git rm test.txt
#会先执行工作区的文件删除操作 `rm test.txt`

git commit -m "rm test.txt"

十三、远程仓库

  • ssh-keygen -t rsa -C "youremail@example.com"创建私钥与公钥
  • 在github添加公钥
  • 创建github仓库 (后续可直接按github的提示操作即可。)
  • 本地git工作区运行git remote add origin git@github.com:name/repoName.git关联本地repo与远程repo
  • 初次推送git push -u origin master
  • 后续推送git push origin master
  • 注:SSH警告可以忽略,直接yes

十四、克隆项目

关键命令:"git clone"

git clone git@github.com:name/repoName.git
#使用了ssh。也可以使用https。

十五、分支

关键命令:

  • git branch <name> 创建分支
  • git checkout -b <name> 创建并切换分支
  • git checkout <name> 切换分支
  • git branch 查看分支
  • git merge <name> 合并指定分支到当前分支
  • git branch -d <name> 删除指定分支
git branch testDevA
#创建分支A
git checkout -b testDevB
#创建并切换到B分支
git checkout master
#切换到主分支
git branch
#查看分支
git merge testDevA
#将A分支合并到主分支
git merge testDevB
#将B分支合并到主分支
git branch -d testDevA
#删除A分支
git branch -d testDevB 
#删除B分支

十六、贮藏栈

注:常用来暂存当前工作,去解决临时问题,之后再恢复工作。

关键命令:

  • git stash 贮藏入栈
  • git stash pop 出栈并清空栈
  • git stash list 贮藏列表(可多次贮藏,然后查询,并用下面命令取出)
  • git stash apply 出栈
  • git stash apply stash{0} 指定贮藏出栈
  • git stash drop 清空栈
git stash
#贮藏
git stash pop
#取出

十七、标签

注:默认给最新的commit_id打标签,也可指定commit_id。
注2:标签的显示是按照字母顺序的,不是时间顺序。
注3:标签默认只存储在本地,需要而外推送远程库。

关键命令:

  • git tag <tagName> 打标签
  • git tag 查看标签名
  • git tag <tagName> <commit_id> 给特定commit_id打标签
  • git show <tagName> 查看指定标签的详细信息
  • git tag -a <tagName> -m <describe> <commit_id> -a指定标签名,-m注释。
  • git tag -d v1.0 删除标签
  • git push origin <tagName> 推送特定标签
  • git push origin --tags 推送全部标签
  • git push origin :ref/tags/<tagName> 删除远端标签
git tag v1.0
git tag
git tag v0.3 1e2c
git show v1.0
git tag -a v0.4 -m "this is a test" 3re4 

#commit_id 可省略,默认最新commit_id。

十八、git私服搭建

待续。

相关文章

网友评论

    本文标题:git笔记

    本文链接:https://www.haomeiwen.com/subject/nmxanqtx.html