如果想要更加深入学习Git,应该在官网上阅读.Git-Book.
下面我列一下我经常用到的命令吧.
git add file
开始跟踪一个文件,并且把file变成暂存状态
git add --all
跟踪全部文件
git status
查看哪些文件处于什么状态
git commit -s
提交更新,并且跳转到提交编辑页面,如果不想跳转那么麻烦就用 -m
git pull --rebase
将远程服务器的代码更新到本地.同:git fetch + git rebase FETCH_HEAD rebase操作不会生成新的节点,而是将分支融合成一个线性的提交。
git rebase --abort
回到rebase操作之前的状态,之前的提交的不会丢弃,简单来说就是撤销rebase。
git rebase --skip
将引起冲突的commits丢弃掉,(慎用)
git rebase --continue
git pull --rebase 之后,本地如果产生冲突,手动解决冲突之后,用"git add"命令去更新这些内容的索引(index),然后只要执行:git rebase --continue 就可以线性的连接本地分支与远程分支,无误之后就回退出,回到主分支上。
注意:一般情况下,修改后检查没问题,使用rebase continue来合并冲突。
git commit --amend
对上次提交的内容进行修改,并修改提交说明
git push
将本地版本库的分支推送到远程服务器上对应的分支
git reset --hard
永久丢弃对所有文件的所有本地更改(慎用)
git reset --hard commit_id
回退到某个指定的版本(慎用)
git checkout - -
撤销本地变化(永久丢弃)
git reset --soft
回退到某个版本.只回退commit信息,不会将提交的文件也清除.如果还要提交,直接commit即可
git revert -n commit _id
撤销之前的某一版本,而且保留该目标版本后面的版本.反做,最后使用commit提交反做.
git branch
列出本地已经存在的分支
git checkout -b branchName
新建一个分支,并切换到这个分支
git branch --no-merged
查看尚未合并的工作分支
git branch -d branchName
删除该分支,如果这个分支中还包含着尚未合并进来的工作成果,那么会删除失败
git branch -D
强制删除该分支,不论是否合并过
git reflog show
查看所有分支的操作记录(即使已经被删除的commit),有了操作的commit_id之后就可以做许多事情了.比如有的时候删除了一个分支,然后又想恢复.这个时候查看git log是没有信息的,所以有了这条命令就不怕误删了.
git log --graph
显示ASCII 图形表示的分支合并历史
git stash
快速保存本地更改
git stash save xxx
可以在保存时添加备注信息,这这样对于多个stash管理和识别将更加方便
git stash list
列出所有以前暂储过的工作状态
git stash pop
用户回到上一个存储的工作状态并将其从stash存储列表中删除
git checkout -b dev origin/dev
拉取远程分支到新的分支并切换到这个新分支上面
git cherry-pick commit_id
用于把其他分支的commit,移到当前分支
git clone
从远程库中克隆,克隆一个版本库到新的目录
git clone -b 远程分支名 --single-branch --depth=1 远程分支主仓库地址
有些库特别大,而我们只需要用到某个分支的时候,使用此命令
例如:git clone -b p/ali/l/forp/dev –single-branch --depth=1 ssh://aliserver:29418/ali/delivery/AliDelivery dev
git remote show origin
查看有关于origin的一些信息,包括分支是否tracking
git remote prune origin
会与远程库进行一次同步,最终清理掉版本库中的dev分支,但本地工作区中的dev分支并不会删除