git的常用操作指令
git学习网址:
http://www.backlogtool.com/git-guide/cn/intro/intro2_3.html
git的工作区和暂存区(描述git的工作流)
git init:初始化git仓库
git add <filename>:添加文件到仓库,可反复多次使用,添加多个文件;
git commit -m '描述': 提交文件到仓库
git status:查看工作区仓库中的文件状态
git diff <filename>:查看某文件修改了哪些地方
git log: 查看当前工作区所有的提交记录,从上到下由最近提交到最远提交(显示为竖向展示比较长,不便于查看)
示例图如下:
git log --pretty=oneline:查看当前工作区所有的提交记录,从上到下由最近提交到最远提交(每一条记录为横向展示,便于查看,commit_id提交的版本号 提交日志)
示例图如下:
git reset --hard <commit_id>:git log或者git reflog查看日志记录得到commit_id提交的git版本号,就可以使用此命令在git的各个版本直接自由穿梭
穿梭前,用git log
可以查看提交历史,以便确定要回退到哪个版本。
示例图如下:
git reflog:查看命令历史(要重返未来,用git reflog
查看命令历史,以便确定要回到未来的哪个版本)
示例图如下:(现在我又要从当前版本回到之前创建index.html那个版本,就需要通过git reflog查看命令历史得到创建index.html那个版本的版本号,然后使用git reset --hard <commit_id>回到那个版本)
git checkout -- <filename>:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,checkout的文件与版本库中最新版本的文件内容一致
git reset HEAD <filename>:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想回到暂存区无此文件时,使用此命令后,工作区仍然有此修改,可使用git checkout -- <filename>命令回到与版本库最新版本文件内容一致
git rm <filename>:git删除文件
git log --graph --pretty=oneline --abbrev-commit:图示形式展示log日志
git branch:查看分支,http://blog.csdn.net/xiruanliuwei/article/details/6919319
git branch -d <branchname>:删除分支
git checkout -b <branchname>:创建并切换到当前新建分支
git checkout -b <branch-name> origin/<branch-name>:在本地创建和远程某分支对应的分支,本地和远程分支的名称最好一致;
git branch -D <name>:强行删除分支,当新建的分支有修改提交的内容,但并未进行合并时,需要使用此命令进行强制删除
git clone:从远程服务器下载文件,相当于svn的checkout
git push origin <branchName>:上传本地修改的文件,推送需要指定本地分支,相当于svn的commit
git pull <远程主机名> <分支名>:相当于是从远程获取最新版本并merge到本地,相当于git fetch和git merge的组合
git fetch <远程主机名> <分支名>:相当于是从远程获取最新版本到本地,不会自动merge,http://www.yiibai.com/git/git_fetch.html
git merge <分支名>:切换到需要合并到的分支上,使用此命令合并分支,将其他分支上的内容合并到一起
git stash:使用此命令将会清除当前工作区的修改内容,git status将会看不到修改的内容,并且备份当前的工作区到stash list中,未完成不想修改但是又不得不切换到别的分支的时候,可以先git stash相当于备份,http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137602359178794d966923e5c4134bc8bf98dfb03aea3000
git stash list:查看备份工作区的备份
git stash apply <stashNum>:恢复工作区的备份,但工作区的备份不会被删除,需要使用命令:git stash drop来删除
git stash pop:恢复并删除工作区的备份
在做测试的时候,使用git clone将github上的项目下下来,修改之后再传上去的时候,提示everything up-to-date,解决方法参考此文档:http://www.cnblogs.com/sminocence/p/6546891.html