====== Git 经常使用命令合集 ======


=== 1.Git 文档 ===

=== 2.Git 基本指令 ===


    git config --global user.name //设置全局username,不加gloabl为局部
    git config --global user.email //设置全局用户邮箱。
    git --bare init                //初始化git 不生成.git文件夹,没有工作空间(work tree)。

 

远程仓库初始化时使用。


    git init                        //初始化git,生成.git文件夹
    cat .gitignore                //依据规则配置忽略跟踪文件。
    git clone url                //从url路径克隆项目到本地仓库。
    git status                        //查看工作文件夹下文件状态。
    git add file                //将文件或者路径加入到暂存区。
    git reset HEAD file                //将文件撤出暂存区。
    git checkout --file        //取消对文件的改动。
    git rm file                        //删 除文件 -cached 不删除本地文件  -f强制删除
    git diff                        //查看改动文件和暂存区文件的差异  -staged //暂存文件与上次提交的差异。
    git commit -am “txt”        //将暂存区的和已改动的文件提交进仓库txt为记录。


    git log                        //查看提交历史 可通过gitg查看。


    git fetch pd                //从远程仓pd库抓取数据到本地git pull。
    git push pd master                //将本地master分支推向pd远程仓库。

git push [远程仓库名][本地分支]:[远程分支]
    /××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
    假设远程仓库不是bare init的情况下,当本地仓库push远程仓库所在分支时结果
    不会对应在work tree上。假设远程仓库不在push的分支上则能够。(远程仓库不
    须要work tree)
    ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××/
  
=== 3.Git remote 指令 ===




    git remote -v                //查看当前远程仓库的名字和地址的信息列表。
    git remote show wepu        //查看远程仓库wepu的信息
    git remote add test url        //加入名为test的远程仓库。
    git remote rename pd paul        //将远程仓库pd名字改为paul
    git remote rm paul                //移除远程仓库paul
  
=== 4.Git branch 指令 ===




    分支是从某个提交对象往回看的历史,本质是指向commit对象的可变指针(HEAD)。每次提交会自己主动向前。


    git branch                //查看当前仓库分支  
    git branch -v        //添加显示最后一个提交对象的信息
    git branch -a        //查看远程仓库分支
    git checkout -b A        //创建并指向A分支 = git branch A + git checkout A
    git branch -d A        //删除A分支
    git push pd :A        //删除远程仓库上的分支A ,省略本地分支具体格式见基本指令
    git merge A                //把A分支合并入当前分支,形成一次新的提交。当两个分支都对某个文件同样行改动数据
                                  须要工解冲突 。

解决完之后运行add和commit
    git rebase A        //把A分支合并入当前分支,形成一次新的提交当两个分支都对某个文件同样行改动数据需
                                  要人工解冲突。解决完之后add.rebase –continue
    git rebase –onto master A B //取出B分支,找出B和A分支的共同祖先之后的变化,以master为基地分支进行rebase
    git cherry pick commitID    //将别的分支的提交放在当前分支。先git log确认想要移动提交对象的commitID
    git stash                   //搁置当前全部的修改。先git add.将全部的修改增加暂存区,然后git stash save "detial"
                                  这时工作平台就回到修改前的版本号了。如须要恢复:git stash apply
     /××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
     rebase:假设分支中的提交对象已经公布到公共仓库,新手最好不要对该分支进行
     rebase操作。由于rebase会抛弃一些现有的提交对象,然后创造出不同的新的提
     交对象。

同步代码后可能会出现混乱
    ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××/