git介绍

来源:互联网 发布:百度里可以申请域名 编辑:程序博客网 时间:2024/05/24 07:08
Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。 Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发。Git 是根据GNU通用公共许可证版本2的条款分发的自由/免费软件,安装参见:http://git-scm.com/


GitHub是一个基于Git的远程文件托管平台(同GitCafe、BitBucket和GitLab等)。


Git本身完全可以做到版本控制,但其所有内容以及版本记录只能保存在本机,如果想要将文件内容以及版本记录同时保存在远程,则需要结合GitHub来使用。使用场景:


无GitHub:在本地 .git 文件夹内维护历时文件

有GitHub:在本地 .git 文件夹内维护历时文件,同时也将历时文件托管在远程仓库

----------------------------------------------------------------------------------------------------------------------------------------------------------

git命令

git init                # git初始化,表示即将对当前文件夹进行版本控制

git status                     # 查看当前git状态 如:那些文件被修改过、那些文件还未提交到版本库等。

git add 文件名或 .                       #将指定文件添加到版本库的暂存状态。

git commit -m '第一次提交'        #将暂存区的文件提交到版本库的分支,并填写版本说明,以便以后回滚。

git log                      # 查看历史版本提交记录(根据版本commit值可以进行回滚)



  • git stash             将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态
  • git stash list        查看“某个地方”存储的所有记录
  • git stash clear     清空“某个地方”
  • git stash pop       将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
  • git stash apply     编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突) 
  • git stash drop      编号,删除指定编号的记录

----------------------------------------------------------------------------------------------------------------------------------------------------------

分支学习:branch称为分支,默认仅有一个名为master的分支。一般开发新功能流程为:开发新功能时会在分支dev上进行,开发完毕后再合并到master分支。



  • git branch 分支名称             创建分支
  • git checkout 分支名称          切换分支
  • git branch -m 分支名称        创建并切换到指定分支
  • git branch                          查看所有分支
  • git branch -d 分支名称         删除分支
  • git merge 分支名称              将指定分支合并到当前分支

----------------------------------------------------------------------------------------------------------------------------------------------------------

GitHub

git remote add origin https://github.com/WuPeiqi/pondo.git   # 为地址起一个别名origin




其他补充

1. 配置文件

Git的配置文件有三个:

  • 系统配置: /private/etc/gitconfig
  • 用户配置: ~/.gitconfig
  • 项目配置:.git/config

2. 用户凭证

由于Git和Github交互操作可能会很频繁,那么一定少了用户授权的操作,为了防止每次操作重复输入用户名和密码,Git提供了两种解决方法:

  • 秘钥
    首先创建一对秘钥  ssh-keygen -t rsa,然后将 id_rsa.pub (公钥)内容拷贝到github中,日后操作无需再输入用户名和密码。
    注意:这种方式需要使用GIt中 git@github.com:WuPeiqi/xxxxx.git 格式地址。
  • 密码
    Https访问git时,避免每次操作需要输入用户名和密码,可以在配置文件中添加如下配置项:
        [credential]
        helper = store/cache/第三方

    store:
            表示将用户名和密码保存在硬盘上
            第一次输入过用户名和密码之后,用户名和密码就会保存在当前用户根目录的 .git-credentials 文件中,内容格式为:https://用户名:密码@github.com

            自动添加配置命令:git config credential.helper store
    cache: 
            表示将用户名和密码保存在缓存中
            第一次输入过用户名和密码之后,用户名和密码就会保存在缓存中,默认超时时间是 900 秒,缓存相关文件保存在当前用户根目录的 git-credential-cache 中 
            自动添加配置命令:
                   git config credential.helper cache
                   git config credential.helper 'cache --timeout=300'

    相关操作:
            清除缓存:git credential-cache exit 
            指定超时:
                [credential]
                helper = cache --timeout=300
    注意:这种方式需要使用GIt中 https://github.com/WuPeiqi/xxxx.git 格式地址。



忽略文件 :   .gitignore

以斜杠“/”开头表示目录;  以星号“*”通配多个字符;  以问号“?”通配单个字符  以方括号“[]”包含单个字符的匹配列表;  以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

----------------------------------------------------------------------------------------------------------------------------------------------------------