zoukankan      html  css  js  c++  java
  • git

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

    Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

    Git 与 SVN 区别点:

    • 1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。

    • 2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。

    • 3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。

    • 4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

    • 5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

    Git 完整命令手册地址:http://git-scm.com/docs

    创建新仓库

    创建新文件夹,打开,然后执行 ,以创建新的 git 仓库

    git init

    拉代码

    git config --global user.name "用户名"
    
    git config --global user.email "邮箱"
    
    git clone   地址

    你的本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录,它持有实际文件;第二个是 暂存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,它指向你最后一次提交的结果。

    提交代码:

    添加和提交

    提出更改(把它们添加到暂存区)

    git add <filename>
    
    git add *

    实际提交改动,此时改动已经提交到了 HEAD,但是还没到你的远端仓库

    git commit -m "代码提交信息"

    推送改动

    将这些改动提交到远端仓库,可以把 master 换成你想要推送的任何分支

    git push origin master

    查看当前本地文件信息

    git status

    如果你还没有克隆现有仓库,并欲将你的仓库连接到某个远程服务器,你可以使用如下命令添加,如此你就能够将你的改动推送到所添加的服务器上去了。

    git remote add origin <server>

    分支

    分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是“默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。

     创建一个叫做“feature_x”的分支,并切换过去

    git checkout -b feature_x

    切换回主分支

    git checkout master

    再把新建的分支删掉:

    git branch -d feature_x

    除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的

    git push origin <branch>

    更新与合并

    要更新你的本地仓库至最新改动,执行

    git pull

    以在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。
    要合并其他分支到你的当前分支(例如 master),执行

    git merge <branch>

    在这两种情况下,git 都会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。 这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:

    git add <filename>

    在合并改动之前,你可以使用如下命令预览差异

    git diff <source_branch> <target_branch>

    替换本地改动

    假如你操作失误(当然,这最好永远不要发生),你可以使用如下命令替换掉本地改动,此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。

    git checkout -- <filename>

    假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它

    git fetch origin
    
    git reset --hard origin/master

    提交代码也可以用 git  gui here  

    提交代码前,要先更新代码!!!   Git Pull是从远端拉取最新的代码,Git Fetch是从远端拉取最新的分支,Git Push是将本地仓库的代码提交到远端

    准备工作:安装git,已切换到开发分支

    1在git克隆的本地项目文件夹下右键选择git GUI Here ,会进入如下界面

    2,点击左上角区域的文件图标,可以将其添加到暂存区(左下角区域),然后在左下角点击文件查看文件更改情况(点击图标,会让其移除暂存区),如果左下角所有的文件更改都是没问题的,可以在commit Message区域添加描述

    3,选择工具栏中的romote --》 fetch Form--》orgin,实现pull的效果,保证多人合作的版本统一(此处顺序一定是先commit然后在pull,先pull会覆盖本地更改的代码)

    4,点击右下角的push按钮就可以提交了

    参考:https://www.cnblogs.com/dglblog/p/9322310.html

    也可使用此文: https://www.runoob.com/w3cnote/git-gui-window.html

    https://www.cnblogs.com/xuwenjin/p/8573603.html

  • 相关阅读:
    一个纠结的问题
    打开SQL Developer时,提示缺少快捷方式
    打开eclipse时,An error has occurred. See the log file
    bash: id : command not found
    Fatal error: Call to undefined function: mysql_connect()解决方法
    struts.xml中标签自动提示问题
    Hibernate向Oracle中添加自增字段
    linux 忘记root密码的解决办法
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
    Ctrl+Alt+Fn不能切换到字符界面
  • 原文地址:https://www.cnblogs.com/yrjns/p/12298277.html
Copyright © 2011-2022 走看看