git-----简

首先介绍一下  工作区  working directory   

与版本库:repository




Image result for gitå·¥ä½åç



Image result for gitå·¥ä½åç


查看工作区与指针区的差别使用:  git diff HEAD --file


还没commit,也没有add  时,丢掉工作区中的修改:git checkout --file

已经add但是没有commit,要回到工作区里:git rest HEAD file 

已经提交了,还没推送到远程库:

     git log  或者git relog --pretty=oneline  得到commit id,

        或者是使用HEAD,HEAD^,HEAD^^,HEAD~20这样

            再使用:git reset  --hard HEAD^

                        git reset HEAD^


https://blog.csdn.net/qq_34907701/article/details/79850821

git reset HEAD^     你已经提交了,但是发现有错,那么你回到上次提交,但是代码还是那个发现有错的.

git reset --hard HEAD^    所有东西都回到上一次提交的了,嗯,是的,错误的东西也没有了。


ok,现在你想删除一些东西,并使用了:rm t.txt

git并没有删掉,先用git status查看一下状态。

真的要删的话:git rm t.txt   再commit

不想删,由于版本库里还有:git checkout -- t.txt

由此可见,git checkout -- file 就是用版本库的版本替代工作区中的版本。


那么当我不是用rm 删除,而使用git rm 删除,但是又后悔了,怎么办。????????


由于想链接远程服务器,所以肯定得使用一些东西。如ssh key

ssh key是在用户主目录下的两个文件:id_rsa     id_rsa.pub

  ssh-keygen -t rsa -C "email@address"


===========

git init 就不说了

git remote add origin(可变,不过一般是它) git@github.com:aaaaa/xxxx.git

第一次推送,由于远库程是空的:所以  -u

git push -u origin master

默认退的是master 所以以后可以 git push


如果是克隆: git clone git@github.com:aaa/xxx.git

而当远程有还有多个分支时,本地默认只能看到master主分支,你可以使用git branch查看

如果想在分支工作,得:  git checkout -b dev origin/dev

如果分支是dev的话。


引出分支:branch

创建分支:git branch dev              

当前指针切换到dev分支     git checkout dev   //没有 --

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


这里有个概念,每个分支都有个指向它的指针,而当前commit指针是HEAD,使用git branch 查看是,分支前会带有*



Image result for gitåæ¯

Image result for gitæé

Image result for gitæé

Image result for gitæé


====

下面讲git merge

Image result for git merge gif

Image result for git merge

合并的方式分为两种:可快速合并(没有冲突):fasst-forward

先切换到master分支,再git merge dev  把dev合并到当前分支。

这时可以删除分支,使用git branch -d dev


而当出现master 与dev中的修改不一样时,就无法快速合并了。

这个就是冲突了,git merge dev 后得手动修改相应文件。可用git status 查看冲突文件,改改后再git add  ....    commit

而不用git merge了。


使用git log --graph查看分支合并图。

前面提到的fast forward模式,这种只是跟新一下指针位置,不会产生一个新的commit,而有时候希望它有个commit

于是:   git merge --no-ff -m "xxxxxxx' dev


那么当一个分支还没有被合并你就要把它删了:  git branch -D dev


关于远程库:

查看远程名:  git remote

详细查看远程库名:git remote -v

............(fetch)

..............(push)

代表有无相应权限。。。


想推送某个分支:  git push origin dev


当远程为github时,可以考虑:  git remote add github git@github.com:xxxx.git

删除远程库:git remote rm origin



.gitignore文件   参考:https://github.com/github/gitignore

将需要忽略的文件写入.gitignore 里,可使用通配符*

再提交.gitignore

如果要add 的文件是在.gitignore里定义过的文件,还是要提交的话:

使用   git add -f file

Image result for .gitignore



Image result for .gitignore

Image result for .gitignore



















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值