zoukankan      html  css  js  c++  java
  • git使用指南

    原文链接:

    1. git教程-廖雪峰官网:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
    2. github设置添加SSH:http://www.cnblogs.com/ayseeing/p/3572582.html

    工作区(本地)文件修改、添加到远程仓(origin):

    //查看日志
    $ git log --pretty=oneline
    3628164fb26d48395383f8f31179f24e0882e1e0 append GPL
    ea34578d5496d7dd233c827ed32a8cd576c5ee85 add distributed
    cb926e7ea50ad11b8f9e909c05226233bf755030 wrote a readme file

    //过去版本
    $ git reset --hard HEAD^
    HEAD is now at ea34578 add distributed

    //未来版本
    $ git reset --hard 3628164
    HEAD is now at 3628164 append GPL

    //git reflog用来记录你的每一次命令
    $ git reflog
    ea34578 HEAD@{0}: reset: moving to HEAD^
    3628164 HEAD@{1}: commit: append GPL
    ea34578 HEAD@{2}: commit: add distributed
    cb926e7 HEAD@{3}: commit (initial): wrote a readme file

    //把暂存区的修改撤销掉(unstage),重新放回工作区(本地):
    $ git reset HEAD readme.txt
    Unstaged changes after reset:
    M readme.txt

    //还记得如何丢弃工作区(本地)的修改吗?
    $ git checkout -- readme.txt
    $ git status
    # On branch master
    nothing to commit (working directory clean)

    //$ git log 出现冒号":"
    你可以上下滚动浏览日志。
    屏幕底部出现的冒号":",表示还有更多信息等待输出。
    (按"j"向下浏览,"k"向上浏览,"q"退出)。

    //确认从版本库删除文件
    $ git rm test.txt
    rm 'test.txt'
    $ git commit -m "remove test.txt"
    [master d17efd8] remove test.txt
    1 file changed, 1 deletion(-)
    delete mode 100644 test.txt

    //在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件。
    这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

    //第一次添加到远程仓库(origin)
    $ git remote add origin https://github.com/cxying93/01-GitRepository.git
    $ git push -u origin master
    从现在起,只要本地作了提交,就可以通过命令:
    $ git push origin master

    //Git支持多种协议,默认的git://使用ssh
    $ git clone git@github.com:cxying93/01-GitRepository.git

    //HEAD指向的就是当前分支(master),master指向最新的提交。

    分支管理、解决冲突:

    //首先,我们创建dev分支,然后切换到dev分支:
    $ git checkout -b dev
    Switched to a new branch 'dev'

    //然后,用git branch命令查看当前分支:
    $ git branch
    * dev
    master

    //现在,dev分支的工作完成,我们就可以切换回master分支:
    $ git checkout master
    Switched to branch 'master'

    //现在,我们把dev分支的工作成果合并到master分支上:
    $ git merge dev
    Updating d17efd8..fec145a
    Fast-forward
    readme.txt | 1 +
    1 file changed, 1 insertion(+)

    //合并完成后,就可以放心地删除dev分支了:
    $ git branch -d dev
    Deleted branch dev (was fec145a).

    //小结,Git鼓励大量使用分支:
    查看分支:git branch
    创建分支:git branch <name>
    切换分支:git checkout <name>
    创建+切换分支:git checkout -b <name>
    合并某分支到当前分支:git merge <name>
    删除分支:git branch -d <name>

    //解决冲突后,查看分支的合并情况:
    $ git log --graph --pretty=oneline --abbrev-commit
    * 59bc1cb conflict fixed
    |
    | * 75a857c AND simple
    * | 400b400 & simple
    |/
    * fec145a branch test

    //分支内容添加到远程仓库
    $ git push origin master
    $ git push origin dev:dev

    //分支管理策略:通常合并分支时,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息,所以要强制禁用Fast forward模式:
    $ git merge --no-ff -m "merge with no-ff" dev
    Merge made by the 'recursive' strategy.
    readme.txt | 1 +
    1 file changed, 1 insertion(+)
    因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。
    //合并后,我们用git log看看分支历史:
    $ git log --graph --pretty=oneline --abbrev-commit
    * 7825a50 merge with no-ff
    |
    | * 6224937 add merge
    |/
    * 59bc1cb conflict fixed

  • 相关阅读:
    HTTP协议详解
    如何编写出拥抱变化的代码
    Cookie ,Session
    Request 请求
    MySQL如何处理死锁
    如何优化冒泡排序
    java数据结构分析
    response响应
    Tomcat服务器
    HTTP协议
  • 原文地址:https://www.cnblogs.com/cxying93/p/6419484.html
Copyright © 2011-2022 走看看