Tool

git笔记3-Git

2018-09-19  本文已影响2人  codeTao

git命令


git分支

git共享仓库

**git clone --bare** 项目地址 仓库名称(可选)

文件冲突: 多个人同时改了同一个文件的同一行就会引起冲突。

修改远程仓库地址

git remote origin set-url [url]
git remote rm origin
git remote add origin [url]

git tag 标签

标签可以针对某一时间点的版本做标记,常用于版本发布
1.标签创建和查看

$ git tag
v1.0
$ git show v0.9
commit f52c63349bc3c1593499807e5c8e972b82c8f286 (tag: v0.9)
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 21:56:54 2018 +0800

    add merge

diff --git a/readme.txt b/readme.txt
...

2.标签发布
通常的git push 不会将标签对象提交到git服务器,我们需要进行显式的操作:

$ git push origin v1.0
Total 0 (delta 0), reused 0 (delta 0)
To github.com:michaelliao/learngit.git
 * [new tag]         v1.0 -> v1.0

3.删除标签

$ git tag -d v0.1
Deleted tag 'v0.1' (was f15b0dd)
$ git push origin :refs/tags/v0.9
To github.com:michaelliao/learngit.git
 - [deleted]         v0.9

git diff 差异化

比较暂存区和当前的版本的差异,此命令比较的是工作目录(Working tree)和暂存区域快照(index)之间的差异
也就是修改之后还没有暂存起来的变化内容。

git check 补充

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
  一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
  一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。

git简写

git st # git status
git ci  # git commit
git br # git branch
git co # git checkout
git mg # git merge
git line # git log --oneline

git md = commit --amend
git dt = difftool
git mt = mergetool
git last = log -1 HEAD
git cf = config


git stash 保存工作区

md5加密 不可逆

base64加密/解密

gitignore 忽略文件

创建 .gitignore文件, 图形化界面不能创建

想把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交

git 三种状态

git原理.png

git创建仓库步骤

暂存区域其实是一个文件,索引文件 index
在此文件中记录了那些文件要被提交到仓库中


git命令的bug

错误1:

$ git push ../../share/MJD.git/
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream ../../share/MJD.git/ master

git push --set-upstream ../../share/MJD.git/ master
gitb11.png

错误2:

warning: push.default is unset; its implicit value is changing in Git 2.0 from 'matching' to 'simple'.

事实上这并不会影响你push的结果,最终push还会成功,因为这只是一个”warning“。

解决:执行git config --global push.default matching或者git config --global push.default simple命令,以后再push就不会有警告了。

补充:push.default matching 和 push.default simple的区别:

上一篇下一篇

猜你喜欢

热点阅读