Git基础
Git简介
- 开源的分布式版本控制系统,高效、简单、完全分布式。
- 本地执行操作,离线的优势--快。
- 每次你提交更新,或在 Git中保存项目状态时,它主要对当时的全部文件制作一个快 照并保存这个快照的索引。
- 为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只 保留一个链接指向之前存储的文件。
- git文件的三种状态:已修改(modified)、已暂存(staged)、已提交(commited),对应三个工作区域:工作目录、暂存区域、Git仓库。
- 基本的	Git	工作流程如下:
- 在工作目录中修改文件
- 暂存文件,将文件的快照放入暂存区域
- 提交更新,找到暂存区域的文件,将快照永久性存储到Git仓库目录
 
Git安装和配置
- 
下载安装对应系统的Git 
- 
配置Git每次提交对应的用户信息 $ git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com 
创建Git仓库
- 方法1:创建空文件夹,在其中执行git init命令,之后将项目创建在此文件夹中,新的文件即可被git跟踪。
- 方法2:克隆已有的仓库,复制项目地址,执行以下命令$ git clone https://github.com/libgit2/libgit2 rename,rename为别名,不写默认文件夹名为项目名。
记录每次更新
- 文件的状态变化如下:
  
- 创建.gitignore文件来忽略日志等不必要的文件
 cat .gitignore
 *.log
- 检查当前文件状态,是否都已经提交到暂存区,加-s参数可以输出简要信息
 git status
- 跟踪已修改文件并提交到暂存区,参数可以为一个路径,表示其下的所有文件
 git add name
- 查看尚未暂存的改动行,如果想查看暂存区域将要提交的内容,加--staged参数
 git diff
- 提交更新,-m参数填写备注,-a参数将所有跟踪的文件暂存起来一起提交
 git commit -m "提交备注信息"
- 撤销之前的提交,使用新的提交,这样尽显示一次提交
 git commit --amend
查看提交历史
- 显示每次提交的内容差异
 git log -p
- 使用-n参数显示最近的n次提交
- 查看每次提交的简略信息
 git log --stat
- 指定不同方式展示提交历史,展示一行oneline或者short或full或fuller
 git log --pretty=oneline
- 定制显示格式
 $ git log --pretty=format:"%h - %an, %ar : %s"
远程仓库的使用
- 添加远程仓库
- 克隆远程仓库,执行默认操作
 $ git clone https://github.com/schacon/ticgit
- 明确的添加远程仓库,name为你自己给服务器起的名字
 git remote add name https://github.com/paulboone/ticgit
- 重命名远程仓库
 git remote rename origin newname
- 移除一个远程仓库
 git remote rm origin
 
- 克隆远程仓库,执行默认操作
- 查看当前已配置的远程仓库服务器
- $git remote,默认命名为origin
- -v选项可以查看服务器URL
- 查看一个远程仓库的更多信息
 git remote show [remote-name]
 
- 从远程仓库抓取与拉取
- 抓取但不合并分支
 git fetch [remote-name]
 如果是克隆的仓库,执行git fetch origin可以抓取最新推送的工作
- 拉取并自动合并到当前分支
 git pull
 
- 抓取但不合并分支
- 推送到远程仓库
- 将master分支推送到origin服务器,一般需要先执行拉取操作后推送
 git push origin master
 默认推送到远程仓库自动创建的master分支,可以指定其创建新的分支,使用git push origin master:newbr
 
- 将master分支推送到origin服务器,一般需要先执行拉取操作后推送
标签的使用
- 列出标签
 git tag
- 使用-a参数创建标签,-m参数添加附注信息
 git tag -a v1.0 -m "my v1.0"
- 查看标签内容
 git show v1.0
- 共享标签
 git push origin --tags
 默认不会将标签推送到远程服务器上,需要手动添加标签名推送,--tags为推送所有远程仓库服务器没有的标签。
    不为当下而战,何以颠覆未来
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号