git命令实践

一、命令

git checkout -b 分支名 //创建分支并切换到该分支

git checkout 分支名 //切换到该分支

git merge 分支名 //把分支合并到当前分支

git branch -d 分支名 //删除该分支

git branch -D 分支名 //强制删除该分支

git log|head //最近一次记录

git log --pretty=oneline //以列表的形式列出所有提交记录

git reset //撤销git add 之后 git commit之前的操作

git add -A //所有tracked文件中被修改过或已删除文件和所有untracted的文件信息添加到索引库

git show commit的值  //显示修改信息

git commit --amend  //修改commit注释;回车进入后类似vi

git gc  //压缩,节约磁盘空间

git fsck  //检测仓库的一致性

git config --global --unset uer.email   //删除

git remote add origin <server>  //没有克隆现有仓库,添加到远程仓库

git push origin --delete <branchName>  //删除远程分支

git reset --hard <commit>的值  //彻底回退到某个版本

git log --pretty=oneline 文件名 //文件修改历史

git stash   //把当前工作区储藏起来

git stash list  //查看储藏的工作区

git stash pop  //恢复并删除第一个储藏区

git stash pop stash@{1}  //恢复并删除第二个储藏区

git stash clear  //清除所以储藏区

git stash drop stash@{1}  //删除指定

git log -Sget_info --oneline  //查看这个关键字的变动信息

git reflog  //查看log

git push origin --delete <branchName>  //删除远程分支

git fetch -p //同步远程分支 

git branch --contains=abcdefeafeafe //查看commit在哪个分支提交的

git log -p //显示变更差异

git log --after="today" // 查看今天的提交 可填yesterday、10 day ago、1 week ago、2 month ago

git log --before="today"

git log --grep="修复" //根据日志信息过滤

git log -i --grep="ISSUE" //忽略大小写

git branch -r --contains COMMIT_ID //查看commit id在哪个分支

 

 二、.gitignore文件

*.js  //忽略所有.js文件

/*.js //只忽略根下的.js文件

 

三、命令略解

在git提交环节,存在三大部分:working tree, index file, commit

这三大部分中:
working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了。
index file:是索引文件,它是连接working tree和commit的桥梁,每当我们使用git-add命令来登记后,index file的内容就改变了,此时index file就和working tree同步了。
commit:是最后的阶段,只有commit了,我们的代码才真正进入了git仓库。我们使用git-commit就是将index file里的内容提交到commit中。

①git diff

git diff:是查看working tree与index file的差别的。
git diff --cached:是查看index file与commit的差别的。
git diff HEAD:是查看working tree和commit的差别的。
git diff filename:是查看具体文件和上次版本的差别。

$ git diff ectemplates_class.php
diff --git a/public/ectemplates/ectemplates_class.php b/public/ectemplates/ectem
index db83579..8fe8090 100644
--- a/public/ectemplates/ectemplates_class.php
+++ b/public/ectemplates/ectemplates_class.php
@@ -420,7 +420,8 @@ class Ectemplates {
                if ($this->isdbo == 1) {
                        return $out;
                }
-               $prostr = "14&]W97)E9\"!B>2!%4U!#35,`";
+               //$prostr = "14&]W97)E9\"!B>2!%4U!#35,`";
+               $prostr = '';
                $outtitle = convert_uudecode($prostr);
                if (!empty($this->codesoftdb) && admin_FROM) {
                        $key_array = explode('/', $this->codesoftdb);
(END)

 

git remote add origin <server>  //更改git远程仓库地址

git fsck --lost-found   //检查丢失的提交

git reflog   //检查丢失的提交

git cherry-pick [commit_hash]  //把一个commit合到另一个分支

git diff 1.2.2 1.2.3 --name-only | xargs zip update.zip //打包差异

git push origin --delete tag <tagname> //删除远程tag

git log --pretty="*# %s(%H)" 1.0.9..1.1.0  //两个tag之间的commit

 

posted @ 2015-04-17 13:42  ahhg  阅读(374)  评论(0编辑  收藏  举报