git

2018-07-02  本文已影响0人  android老男孩

git基础

分布式版本管理系统

客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份

git的基本概念

git查看信息操作

git提交操作

注意切换分支一定要commit或stash保存一下
stash@{0}: WIP on master: b7ba44d 初始化
stash@{1}: WIP on master: b7ba44d 初始化
stash@{2}: WIP on master: b7ba44d 初始化

git stash pop stash@{0}

apply与pop的区别是,apply会保留暂存区的id,pop会删除暂存区的id

git移除以及放弃修改

远程仓库

git remote -v 查看所有远程仓库
git remote rename 远程仓库 新远程仓库

重命名操作

git拉取操作

git log

git diff

git分支操作

merge与rebase用法区别

merge简单,保留了提交历史和时间次序,但是提交历史被大量的 merge 提交污染了
rebase把复杂的历史变成优雅的提交线,清除烦人的 merge 提交。
rebase 把所有的提交压缩成一个 “patch”。然后把 patch 添加到目标分支里。

本地开发:如果你没有和别人协同工作,使用rebase更好

git revert 和 git reset的区别

  1. git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
  2. git revert只会删除具体的commit内容
  3. git reset会将你commit之前的全部删除
  4. git reset -- hard与mixed默认的区别
    hard是修改所有工作区暂存区而mised只是修改暂存区还需要你checkout
  5. 注意git revert之后线上代码的commit内容也删除,revert一般不会造成冲突,reset一般会有冲突
 mBtnTest = findViewById(R.id.btn_test);
 mBtnTest.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                
            }
        });

git commit 提交了一个点击事件
在push之前 revert这个commit id 在git log中会出现一个

commit 9cd94ec870c124ec8ac2362acba6bd0926f66b70
Author: cuiqiang <cuiqiang>
Date:   Sat Nov 25 13:12:12 2017 +0800

    Revert "增加点击事件"
    
    This reverts commit d8cd57fcee4cad1e234c2af22784534a1234f4fa.

但是在你push之后,该提交内容会被移除

mBtnTest = findViewById(R.id.btn_test);

强制返回某次提交,并将之前的commit信息全部删除,本地代码也回到reset的指针位置

    增加点击事件

commit 9cd94ec870c124ec8ac2362acba6bd0926f66b70
Author: cuiqiang <cuiqiang>
Date:   Sat Nov 25 13:12:12 2017 +0800

    Revert "增加点击事件"
    
    This reverts commit d8cd57fcee4cad1e234c2af22784534a1234f4fa.

commit 56c3e78df3dfbcdd8ce5176c82077fcd1da6241d
Author: cuiqiang <cuiqiang>
Date:   Sat Nov 25 13:11:20 2017 +0800

    Revert "添加检查权限的方法"
    
    This reverts commit 3e75bb4aac34ae8b8bfc68aa189bbe376bd3ec01.

commit 3e75bb4aac34ae8b8bfc68aa189bbe376bd3ec01
Author: cuiqiang <cuiqiang>
Date:   Sat Nov 25 13:08:37 2017 +0800

    添加检查权限的方法

commit d8cd57fcee4cad1e234c2af22784534a1234f4fa
Author: cuiqiang <cuiqiang>
Date:   Sat Nov 25 13:02:02 2017 +0800

    增加点击事件

commit d901a91f3d2701f47bdc43bc8eff1acb9fadf7b2
Author: cuiqiang <cuiqiang>
Date:   Sat Nov 25 12:56:05 2017 +0800

git reset --hard 3e75bb4aac34ae8b8bfc68aa189bbe376bd3ec01添加权限方法

 Author: cuiqiang <cuiqiang>
Date:   Sat Nov 25 13:08:37 2017 +0800

    添加检查权限的方法

commit d8cd57fcee4cad1e234c2af22784534a1234f4fa
Author: cuiqiang <cuiqiang>
Date:   Sat Nov 25 13:02:02 2017 +0800

    增加点击事件

commit d901a91f3d2701f47bdc43bc8eff1acb9fadf7b2
Author: cuiqiang <cuiqiang>
Date:   Sat Nov 25 12:56:05 2017 +0800

    增加initdata方法

commit b7ba44dbae68661d940e68bab2da0dafe91dff30
Author: cuiqiang <cuiqiang>
Date:   Sat Nov 25 12:49:07 2017 +0800

    初始化

 

git chery-pick

可以将其它分支的commit提交,提交到自己的分支上
然后可以用git rebase改变提交顺序

git 忽略

.gitignore规则不生效

.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

解决方法就是先把本地缓存删除(改变成未追踪状态),然后再提交修改后的.gitignore:

git rm -r --cached .
git add .
git commit -m '修改.gitignore'
上一篇 下一篇

猜你喜欢

热点阅读