在学习了廖雪峰老师的git教程后把经常使用的命令总结了出来
- 注:在使用这些命令前请安装好Git软件,地址:https://git-scm.com/downloads,同时去注册一个git类的数据仓库帐号,国外的如github、gitlab,国内的如码云等。
git init
git add .
git add 文件名
eg: git add readme.md
git commit -m "说明"
eg: git commit -m "Update"
git status
git diff 文件名
eg: git diff readme.md
git
- 注:在确认修改无误后须要再次对修改的文件作git add 和 git commit命令来提交到仓库。
git log
在Git中,用HEAD表示当前版本,也就是最新的提交,上一个版本就是HEAD^,上上一个版本就是HEAD^^,固然往上100个版本写100个^比较容易数不过来,因此写成HEAD~100。github
git reset --hard HEAD^
找到回退以前的版本的commit版本值(sha1值),来进行反悔操做。bash
git reset --hard commit值
eg: git reset --hard f8dad 注: 这个值只须要取前五位便可。
前面的反悔操做是创建在你还没关闭git bash窗口看获得回退前那个最新版本的commit id值,若是咱们关闭了窗口后想反悔怎么办,使用如下命令来查看app
git relog
git diff HEAD -- 文件名
eg: git diff HEAD -- readme.txt
注:每次修改,若是不用git add到暂存区,那就不会加入到commit中。
git checkout -- 文件名
eg: git checkout -- readme.txt //把readme.txt文件在工做区的修改所有撤销
git rm 文件名
eg: git rm test.txt
以后再使用git commit -m "description",文件就从版本库里面删除了
git checkout HEAD -- test.txt //这个恢复的前提是没有执行commit命令才行。
git remote add origin 你远端的github地址
eg: git remote add origin git@github.com:michaelliao/learngit.git
git push -u origin master //推送到主分支,之后能够直接:git push origin master
git clone 远程地址
eg: git clone git@github.com:michaelliao/gitskills.git
好比咱们要建立dev分支:gitlab
git checkout -b dev
注:git checkout命令加上-b参数表示建立并切换,至关于如下两条命令:学习
git branch dev
git checkout dev
git checkout master
git branch //git branch命令会列出全部分支,当前分支前面会标一个*号。
git merge dev //合并指定分支到当前分支(好比这个在master下合并dev)
git branch -d dev //删除dev分支
通常来讲在合并分支时与master存在冲突的状况下只能手动去把文件修改一致才行。合并过程冲突的话,可使用cat 文件名来查看冲突的内容,冲突部分会用<<<<<<< HEAD这样的字样标注。
具体操做教程:分支合并冲突日志
前面的分支操做属于Fast Forward模式,这种模式下,删除分支后,会丢掉分支信息,接下来不使用这种模式。
使用这个模式的其它操做几乎都同样,只是在合并的时候加一个参数和一个commit信息。以下:code
git merge --no-ff -m 'no-ff' dev
查看分支历史图教程
git log --graph --pretty=oneline --abbrev-commit
首先,master分支应该是很是稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,好比1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
你和你的小伙伴们每一个人都在dev分支上干活,每一个人都有本身的分支,时不时地往dev分支上合并就能够了。ip
有时候咱们在开发的过程当中遇到bug,须要及时去修复,可是目前分支上的开发任务又无法提交,Git还提供了一个stash功能,能够把当前工做现场“储藏”起来,等修复bug之后恢复现场后继续工做。
git stash //执行了这个命令后用git status就不会看到未提交的信息。
git stash list //查看工做现场的位置 git stash apply //恢复后,stash内容并不删除,你须要用git stash drop来删除 git stash pop //恢复的同时把stash内容也删了 git stash apply stash@{0} //恢复指定的stash,这个stash@{0}参数能够从git stash list查看
当咱们在开发新功能时须要新建一个分支,可是在开发完事后不要这个功能了,须要删除这个未合并的分支。
git branch -D feature //删除未合并的分支须要使用大D。
git remote -v //若是没有推送权限,就看不到push的地址。
git push origin master
git push origin dev
这个参考教程,比较详细:多人协做开发
总结为如下几步:
查看远程库信息,使用git remote -v; 本地新建的分支若是不推送到远程,对其余人就是不可见的; 从本地推送分支,使用git push origin branch-name,若是推送失败,先用git pull抓取远程的新提交; 在本地建立和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致; 创建本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name; 从远程抓取分支,使用git pull,若是有冲突,要先处理冲突。
git push --set-upstream origin 分支名
eg: git push --set-upstream origin dev