git 实用

2016-02-27  本文已影响0人  lingtongfu

目录

一、基本使用官方文档

http://www.bootcss.com/p/git-guide/


单机模式

工作流:

git  status查看当前git的工作状态  

       0.干净  新增或修改->  1.未记录  add->      2.已提交     commit  ->   3.干净   

问题由浅入深:

      处于已提交的状态(即状态2) 怎么返回?  

          只撤销一个文件的修改: $ git reset <文件名>   

          撤销所有文件的修改: $  git reset

          修改HEAD指针! : $ git reset --soft HEAD~1    git reset --hard <commit_id>

      处于干净的状态怎么返回?  可以修改提交的备注信息吗? 不小心commit  还push了怎么办 ? 

      编辑最近一次的提交信息,如果你对当前的代码库(working copy)做修改,这些修改也会随commit信息一起提交。

       git commit --amend -m ”NEW-COMMIT-MESSAGE”

       这将不执行最后一次提交,恢复你原来的内容,提交信息将默认为你下次提交的信息。

      假如你已经将代码提交(git commit)推送(git push)到了远程分支,那还需要通过下面的命令强制推送这次的代码提交。

     git push origin HEAD --force  (不推荐使用)

      如何回到过去的版本?

      使用git log 查看 提交历史记录  http://blog.csdn.net/wh_19910525/article/details/7468549

      使用git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能看已经删除了的commit记录

        git reset --hard   <commit_id> 


协同模式:

分支:

创建分支: $ git branch mybranch

以远端master创建分支: $ git checkout -b mybranch  o/master 

切换分支: $ git checkout mybranch

列出所有分支: $ git branch

删除分支: $ git branch -d mybranch

强制删除分支: $ git branch -D mybranch

删除远程分支:$ git push origin --delete  <branch_name>

合并与更新 

更新master主线上的东西到该分支上:$git rebase master

更新mybranch分支上的东西到master上:$git rebase mybranch

如果有冲突 :

          不要随意删除别人的代码 !

          解决完合并冲突后要添加文件...  ( 是的  我忘记过不止一次. )

好的建议:

           1.提交前diff一下代码   确保没有提交测试和   有bug的代码.

           2.下班回家前整理好自己的工作区 ,   该提交的就提交    有备份也避免丢代码的风险.  

           3.并行的项目, 使用分支开发

           4.产品发布后记得打tag,  方便以后拉分支修bug.

扩展阅读:

git push origin master  和  git push -u  origin 有什么区别 ?

http://stackoverflow.com/questions/5561295/what-does-git-push-u-mean

简而言之:   -u 影响 git fetch 与 git  pull.   -u将提交的 git server记录在git config文件中!  

merge 和 rebase 的区别?

http://blog.csdn.net/wh_19910525/article/details/7554489

上一篇下一篇

猜你喜欢

热点阅读