git常用命令总结

内容不定期更新

自己常用的 git alias 可以在命令行中更好的显示 log 信息

alias gl="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

alias gll="git log --graph --abbrev-commit --decorate --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(dim white) - %an%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n %C(white)%s%C(reset)'"

1. git commit –amend

git commit --amend

解释:当第一次 commit 之后,发现没有修改正确,但是又不想在 git log 中出现两次提交记录,那么在第二次修改后,可以使用 git commit –amend 命令进行修改提交。此时提交成功后就只有一条 commit 记录了。

2. gitignore 生效

解释: .gitignore 文件是忽略 git 项目中不需要提交的内容的配置文件。但是当某次提交的时候把不需要的内容提交到 git 版本控制中了之后。再想修改 .gitignore 文件来忽略那个文件的话是不会生效的。需要先想文件在 git 缓存中删除,然后在进行提交。就可以了。(下面是操作步骤)

git rm -r --cached .   //如何是目录的话,增加 -r 参数
git add .
git commit -m 'fix ignore'

//删除指定文件的缓存
git rm --cached xx.html

3. git reset –soft/hard hash*

git reset --soft  **hash***
git reset --hard  **hash***

解释:当执行 git commit 之后,想回到之前的版本,可以使用 git reset 进行版本回退。–sorf 参数的意思是,git log 撤销版本,但代码中的内容没有回退。 –hard 参数的意思是,git log 中的记录和 文件内容完全回退到选的的版本。(–hard 更常用)

4. git stash

git stash           //将当前工作去内容进行暂存,然后就进行切换分支或其他的操作了
git stash list      //查看当前已经暂存的记录列表
git stash pop       //将当前暂存内容回复到工作区并删除暂存记录列表中的内容
git stash apply     //将当前暂存内容回复到工作区,不删除记录

5. git rebase (变基)

解释:当在两个分支进行操作的时候,一般我们使用 merge 将两个分支进行合并,但是这样会产生一个新的提交,并且另一个分支的提交记录在当前分支是不存在的。为了解决这个问题,可以使用 rebase。

//前提:master 分支和 new-feature 分支都进行了多次提交

git checkout new-feature        //首先切换到新分支
git rebase master               //将 master 分支的提交记录添加到当前分支
git checkout master             //切换回 master 分支
git merge new-feature           //将 new-feature 分支合并入master,此时 master 分支中就有了 new-feature 分支的提交记录,但是不会产生新的提交记录。此命令可以使提交历史更为整洁。

   转载规则


《git常用命令总结》 chenggx 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
网易云音乐评论摘录 网易云音乐评论摘录
网易云音乐里有才的人实在太多,写出来的歌词或评论是真的不错。这里就把我觉得还不错的收藏一波吧(不定期更新)。 评论 人会长大三次:第一次是在发现自己不是世界的中心的时候。第二次是在发现即使在怎么努力,终究还是有些事令人无能为力的时候。第三次
2019-05-28
下一篇 
使用frp搭建本地微信开发环境 使用frp搭建本地微信开发环境
2019-3-10 更新记录 再使用 TP5 进行开发的时候需要注意一下几点 关闭 trace 调试模式。 在使用路由的时候尽量确定对应接口请求的类型,如果不知道类型建议使用 Route::any(); 可以使用 微信消息测试工具进
2019-03-08
  目录