git 了解和基础学习

一、了解git

git是一种开源的分布式版本控制系统,也是cms内容管理系统,工作管理系统等。

与svn的区别:

1.git 是分布式,svn 集中控制的

2.git是按元数据方式存储,svn 是按文件存储

3.git 没有一个全局的版本号,而svn是有的

4.git的完整性优于svn,因为git 是SHA-1的hash 算法来存储内容,这能确保内容的完整性,在磁盘故障或网络问题时能降低对版本库的破坏。

二、git的基本概念

1.工作区:本地电脑上的工作目录,可以更新修改操作的工作目录

2.暂存区:即stage或index,一般git add 操作的数据,并不会提交到版本库,而是存储到这个暂存区中

3.版本库:即git commit 后提交的数据存储的地方,分为本地版本库和远程版本库。一般commit 后,就加入到本地版本库的某分支,而git push origin 才能提交到远程版本库中

 

三、git 命令

1.在本地创建仓库

  git init  初始化本地仓库

  git init newdir  在指定目录创建仓库

  git clone <repo>  <dir>  拷贝git 上的项目到本地指定目录中 如  git clone git://github.com/xxxxx/grit.git   mydir

2.git 配置

  git config --list   查看当前git 的配置信息

  git config -e   编辑当前仓库

  git config -e --global  编辑系统上的所有仓库的配置  如 git config --gloabal user.name "ruby"  或 git config --global user.email "xxx@126.com"

3.git 本地操作命令

  git add [file1] [file2]....  添加多个文件到暂存区

     git add [dir]  添加指定目录到暂存区

  git add .  添加当前目录的所有文件到暂存区

  git status   用于查看在你上次提交之后是否有对文件进行再次修改

  git diff [file]  比较工作区的file 文件和暂存区文件的不同

  git diff [commit_id1 commit_id2]  比较某个文件的两个提交版本之间的不同

  git commit -m [message]  提交暂存库到本地仓库 ,message为提交的注解信息

  git commit --amend 修改当前分支上最新一次提交的注解信息 

  git reset [--soft  |  hard]  [commitID /HEAD] 命令用于回退版本,可以指定退回某一次提交的版本

    注:--soft  是默认的   --hard:谨慎使用,会删除回退点之前的所有信息。

  git rm [-f] [--cached] runoob.txt   删除暂存区和工作区的文件  -f为强制删除  --cached  是想把文件从暂存区域移除,但仍然希望保留在当前工作目录中 

  git  mv  [-f]  file  newfile  移动或重命名文件  -f指新文件名存在,但仍要命名

  git show   查看最新的提交信息

  git show  (commitID)  查看指定提交的所有修改

  git show (commitId )(fileName) 查看指定提交的某个文件的修改

 

4.远程操作文件命令

  git remote -v  查看所有远程仓库

  git remote show [remoteRepo]  查看某个远程仓库信息

  git remote add  [localversion] [remoteRepo]  添加本地版本到远程仓库

  git remote rm [remoteRepo]  删除某个远程仓库

  git remote rename [remoteRepo]  给远程仓库重命名

 

5.分支管理命令

  git branch  列出本地分支

  git branch branchName  创建branchName的分支

  git checkout  branchName  切换分支到branchName分支上

  git checkout -b (branchname)   创建分支并且切换到branchname分支上

  git branch -d (branchname)  删除分支

  git merge(branchname)   合并某个分支到当前分支上

  git cherry-pick (commitID)  合并其他分支上的提交某个版本 commitID:为提交的hash的前六位即可  如git cherry-pick 62ecb3

  git rebase  --onto (desBranch) (historycommitID)  合并当前分支的historycommitID-当前版本的信息到desBranch分支上,这个功能可以合并多个提交的版本到一个分支上

    如git checkout -b  newbranch 62ecb3  基于feature创建一个新的分支,并指明当前分支的版本为commitID为62ecb3  

     git rebase --onto master 76cada  得到的结果就是feature分支的commit 76cada ~62ecb3 都被合并到了master分支。其中新分支起到中间过渡的作用

  git branch -m oldBranchName newBranchName    更改分支名称

 

6.远程分支管理命令

  git push  [repo|origin] newBranchName     向远程仓库提交重命名的分支

  git push (repo|origin)--delete (branchname)   删除远程分支

  git branch -r   查看远程的分支

  git fetch [repo|origin]  (remotBranch)  从远程仓库的指定分支上下载到本地上    如git fetch origin master 从远程的origin仓库的master分支下载代码到本地的origin master

  git fetch [repo|origin] (remotBranch):(localBranch) 从远程仓库的指定分支上下载到本地上指定分支上   如git fetch origin master:temp 从远程的origin仓库的master分支下载到本地并新建一个分支temp

  git remote show  [repo|origin]   查看远程仓库分支

  git remote prune  [repo|origin]  整理远程仓库上已经不存在的分支。本地会与远程库进行一次同步,最终清理掉版本库中的存在的但远程仓库却不存在的分支,但本地工作区中的该分支并不会删除.

  git remote prune [repo|origin] --dry-run   # 查看本地仓库有哪些没用的分支需要清除

  git branch -u [repo|origin] /addFile   或者 git branch --set-upstream-to origin/addFile 建立当前分支与远程分支的映射关系  如:git branch -u origin/addFile

  git branch --unset-upstream   撤销本地分支与远程分支的映射关系 

  git branch -vv  查看分支与远程分支追踪状态

7.日志查看命令

  git log   查看历史提交记录

  git  log --online   查看历史提交的简洁版本

  git  log --graph   开启拓扑结构选项,看历史中什么时候出现了分支、合并

  git log --reverse  参数来逆向显示所有日志  

  git log --author=username --oneline -num   只想查找指定用户的提交日志可以使用命令 如git log --author=Linus --oneline -5 找 Git 源码中 Linus 提交的部分

    注:以上-- 中的选项是可以综合使用的,根据需求来联合使用

  git blame <file>  以列表的形式显示修改记录

  git reflog   操作日志

8.其他

  git clean 参数
    -n 显示 将要 删除的 文件 和 目录
    -f 删除 文件
    -df 删除 文件 和 目录
    如:git clean -xdf :放弃修改或新增的没有加入暂存区的文件

 

 

  

 

posted @ 2021-04-06 16:42  coder菜鸟玩家  阅读(45)  评论(0)    收藏  举报