Git 必知必会

远程仓库

当你git clone的时候,就是从远程仓库(origin)克隆了master分支到本地。git remote -v,能够显示当前的远程仓库有哪些.

创建git目录

git init与git init --bare都可以创建,但是区别非常大

git init
创建git文件隐藏目录,同时用户在当前目录下进行git提交,注意一定是有权限登录的用户,远程用户无法提交到master,远程用户只能提交到分支上来

git init --bare
只创建git文件目录,并且是显示的.远程用户都可以提交代码到master上面

关于分支合并

git rebase 和git merge 都能进行分支合并,还是有区别的

git rebase  branch_a branch_b  将branch_b的代码合并到branch_a上面来,并在branch_a上进行一次提交。这样是为了让分支图成线性
1. 当有冲突之后,进行修改,然后git rebase  --continue
2. 如果要取消rebase, git rebase --abort
切换到主分支上,使用git merge branch_a 则将分支合并到主分支上来,图形上非线性.

cherry-pick 某个hash

将当前的commit与过去的commit进行一次合并,如有冲突,就修改冲突,并生成一次新的提交

git log --oneline --decorate --graph --all
查看分支图

撤销

git revert xxx 撤销某次提交
git reset --soft xx 回滚到某次提交,此次提交修改放在暂存区
git reset --hard xx 回滚到某次提交
git reset head file 将文件从暂存区恢复到本地,但是文件依然处于修改状态
git checkout file 将文件完全恢复到上次提交的状态,那么文件处于无修改状态

文件的状态

local----(add)----->stash----(commit)----git local

非常重要的忽略文件的方法

在项目目录下,建立一个.gitignore文件夹,然后正则匹配要忽略的文件

打标签

  1. git tag -a "v1.0.0.xxx" -m "提交相关信息"(创建tag)
  2. git push origin v1.0.0.xxx(提交到远端)
  3. 删除标签git tag -d v1.xx

查看某个单独分支的情况

  1. git fetch origin branch
  2. git checkout branch
    git pull会执行两个操作,git fetch 某个分支,然后git merge到默认分支上.

你可能感兴趣的:(Git 必知必会)