GIT常用命令
2018-11-07 本文已影响0人
Phoebe_Liu
1. 版本库(Repository)
git repository.png
- 用git add把文件添加进去,实际上就是把文件修改添加到暂存区(stage);
- 用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
2. git status
可以让我们时刻掌握工作路径当前的状态:
- Changes not staged for commit 没有add和commit的
- Changes to be committed 没有commit的
3. git reset
- git reset --hard HEAD^
git reset --hard commit_id
HEAD表示当前版本,上一个版本就是HEAD,上上一个版本就是HEAD^,前100个版本是HEAD~100。
表示回退。 - git reset HEAD readme.txt
可以把暂存区的修改撤销掉(unstage)
4. git checkout
- git checkout -- file
本地可以丢弃工作区的修改- 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
- 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
- 另一种情况是本地删错文件,其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”
- git checkout -b dev (= git branch dev + git checkout dev)
本地切换到一个新的分支dev - git checkout master
本地切换到分支master - git checkout -b branch-name origin/branch-name
在本地创建和远程分支对应的分支
5. git remote add origin XXX.git
将本地仓库 --关联到--> git远程库
(origin这个名字一看就知道是远程库)
6. git push
git push -u origin branch-name
- -u参数,第一次加上这个参数,后面就不用加了
把本地的branch-name分支推送到远程
7. git clone
将远程库 --克隆--> 本地仓库
8. git merge
git merge dev 将master和dev分支合并
(1)快进模式fast forword:在没有冲突时,直接移动指针即可,速度很快
git_merge_ff.png
(2)需要人为解决冲突模式:如果master版本和dev版本存在冲突。图如(3)
- git statue 查看冲突文件,直接打开冲突文件,编辑即可
-
git add + git commit 再次提交
(3)指定合并模式:
git merge --no-ff -m "merge with no-ff" dev
这种是禁用快进模式,生成一个新的提交版本,相较于FF的优点是 dev分支没有被覆盖
git_merge_nof.png
9 git branch
- git branch
查看本地分支 - git branch -r
查看远程分支 - git branch -a
查看本地+远程所有分支 - git branch -d dev
删除本地分支 - git branch dev
创建本地分支 - git branch -r -d origin/branch-name(git push origin :branch-name)
删除远程分支 - git branch --set-upstream branch-name origin/branch-name
建立本地分支和远程分支的关联
10. git log
git log --graph 可以看到分支合并图
11. git remote
查看远程库的信息