初识Git

Git

镜像下载:http://npm.taobao.org/mirrors/git-for-windows

Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多

Git CMD:windows风格的命令行

Git GUI:图形界面的Git,不建议使用

Git配置

git config -l #查看配置
git config --system --list #系统配置,配置文件路径  D:\git\Git\etc\gitconfig
git config --global --list #当前用户配置      C:\Users\Administrator\.gitconfig

修改配置

git config --global user.name "ming"
git config --global user.email "7777@qq.com"

工作原理

工作区域

Git本地有三个工作区域

  • 工作目录(Working Directory)
  • 暂存区(Stage/Index)
  • 资源库(Respository或Git Directory)
  • 远程的git仓库(Remote Directory)
git add files     # Working Directory-->Stage(index)
git commit        # Stage(index)-->History
git push          # History-->Remote Directory

git pull          # Remote Directory-->History
git reset         #  History -->Stage(index)
git checkout      # Stage(index)-->Working Directory

工作流程

  • 在工作目录中添加,修改文件
  • 将需要进行版本管理的文件放入暂存区域
  • 将暂存区域的文件提交到git仓库

git管理的文件的三种状态

  • 已修改(modified)
  • 已暂存(staged)
  • 已提交(commited)

项目搭建

本地仓库搭建

创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库

  • 创建全新的仓库,需要用Git管理的项目的根目录进行

    #在当前的目录新建一个Git代码库
    git init
    

    执行后,可以看到,在项目目录里多出了一个.git目录,关于版本等的所有信息都在这个目录里面

  • 克隆远程仓库

    #克隆一个项目和它的整个代码历史(版本信息)
    git clone [url]
    

基本操作指令

文件四种状态

版本控制就是对文件的版本控制,要对文件进行修改,提交等操作,首先要知道文件当前在什么状态,不然可能提交了现在还不想提交的文件,或者要提交的文件没提交上

  • Untracked:未跟踪,此文件在文件夹中,但并没有加入到git库,不参与版本控制,通过git add 状态变为Staged

  • Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致,这种类型的文件有两种去处,如果它被修改,而变为Modified,如果使用git rm移出版本库,则成为Untracked

  • Modified:文件已修改,仅仅是修改,并没有进行其他的操作,这个文件也有两种去处,通过git add可进入暂存staged状态,使用git checkout则丢弃修改过,返回到Unmodify状态,这个git checkout即从库中取出文件,覆盖当前修改

  • Staged:暂存状态,执行git commit则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify状态,执行git reset HEAD filename取消暂存,文件状态为Modified

查看文件状态

#查看指定文件状态
git status [filename]
#查看所有文件状态
git status

#添加所有文件到暂存区
git add .
#提交暂存区中的内容到本地仓库,加上提交信息
git commit -m "message"    

忽略文件

有些时候我们不想把某些文件放入版本控制,比如数据库库文件,临时文件,设计文件等

在主目录下建立.gitignore文件,文件有如下规则:

  • 忽略文件中的空行或以“#”号开始的行会被忽略

  • 可以使用liux通配符,例如*代表任意多个字符,?代表一个字符,方括号[abc]代表可选字段范围,大括号{string1,string2}代表可选的字符串

  • 如果名称的最前面有一个感叹号!代表例外规则,将不被忽略

  • 如果名称的最前面有一个路径分隔符/,表示要忽略的文件在此目录下,而子目录下的文件不被忽略

  • 如果名称的最后面试一个路径分隔符,表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)

    #为注释
    *.txt  #忽略所有.txt结尾的文件
    !lib.txt  # 但lib.txt除外
    /temp   #仅忽略项目根目录下的TODO文件,不包括其他目录temp
    build   #忽略build/目录下的所有文件
    doc/*.txt  #忽略doc/notes.txt 但不包括doc/server/arch.txt
    

使用码云

  • 注册登录码云,完善个人信息

  • 设置本机绑定SSH公钥,实现免密码登录

    #进入 c:\user\administrator\.ssh目录
    #生成公钥
    ssh-keygen -t rsa   #一直按回车   生成id_rsa    id_rsa.pub   两个文件
    
  • 将公钥信息public key 添加到码云账号中即可

  • 使用码云创建一个自己的仓库

  • git remote add origin [url] //关联本地仓库与远程仓库

  • git push -u origin master //更新

IDEA集成Git

  • 新建项目,绑定git

    • 将远程的.git文件目录拷贝到项目中即可
  • 修改文件,使用IDEA提交git

    • 添加到暂存区
    • commit提交
    • push到远程仓库
  • 提交测试

Git分支

常用指令

#列出所有本地分支
git branch
#列出所有远程分支
git branch -r
#新建一个分支,但依然停留在当前分支
git branch [branch-name]
#新建一个分支,并切换到该分支
git checkout -b [branch]
#合并指定分支到当前分支
git merge [branch]
#删除分支
git branch -d [branch-name]
#删除远程分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]
posted @ 2020-10-07 01:07  yourText  阅读(96)  评论(0编辑  收藏  举报