Git的学习

关于廖雪峰老师介绍Git的介绍(本来想总结一下,但发现老师写的已经很详细,保留跳转地址以学习)

  跳转:https://www.liaoxuefeng.com/wiki/896043488029600

  参考资料: https://gitee.com/all-about-git (GIt命令大全)

 

Git指令

  1、安装完成后,还需要最后一步设置,在命令行输入:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

  因为Git是分布式版本控制系统,所以,每个机器都必须自报家门!

  注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。


  2、创建版本库

$ git init

  在需要创建的文件夹中运行此命令就可以了, 如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文


  3、把文件添加到版本库

  一定要放到learngit目录下(子目录也行,运行下面的指令时需自建一个文件readme.txt),因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。

  第一步,用命令git add告诉Git,把文件添加到仓库:

$ git add readme.txt

  第二步,用命令git commit告诉Git,把文件提交到仓库:

$ git commit -m "wrote a readme file"

  简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

  commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

  4、查看文件状态

  掌握仓库当前的状态

$ git status

  看具体修改了什么内容

$ git diff readme.txt 

  5、版本回退

  查看各版本的历史记录

$ git log

  如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数

$ git log --pretty=oneline

  回退到上一个版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

$ git reset --hard HEAD^

  查看文件内容

$ cat readme.txt

  回退版本后现有的版本号用git log是查不到的,想要到最新版本找到那个某个版本号(版本号不用写全,前几位就行)

$ git reset --hard 1094a

  如果不知道版本号,想要最新的版本(git reflog可以查看历史操作记录)

$ git reflog

   6、管理修改

  Get有一个暂存区的概念,git add先把第一次修改的文件提交到暂存区,现在修改源文件,如果不对文件使用git add,那git commit之后提交的文件其实是暂存区里的第一次修改的文件!意思就是git commit提交的文件是暂存区中的文件

       


  7、撤销修改

  一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

  一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

git log                       // 显示当前分支的版本历史commit
git log --stat                // 显示commit历史,以及每次commit发生变更的文件
git log --pretty --oneline    // 显示commit版本号和注释
git checkout [file]           // 恢复暂存区的指定文件到工作区
git checkout [commit] [file]  // 恢复某个commit的指定文件到暂存区和工作区
git checkout .           // 恢复暂存区的所有文件到工作区
git reset [file]          // 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
git reset --hard          // 重置暂存区与工作区,与上一次commit保持一致
git reset [commit]        // 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
git reset --hard [commit]     // 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
git reset --keep [commit]     // 重置当前HEAD为指定commit,但保持暂存区和工作区不变
git revert [commit]       // 新建一个commit,用来撤销指定commit,后者的所有变化都将被前者抵消,并且应用到当前分支
// 暂时将未提交的变化移除,稍后再移入
git stash
git stash pop

 

  8、使用分支

git branch                    //查看分支
git branch <name>             //创建分支
git checkout <name>           //切换分支
git checkout -b <name>        //创建+切换分支
git merge <name>              //合并某分支到当前分支
git branch -d <name>          //删除分支

   9、远程仓库的操作

git remote add [shortname] [url]  // shortname:给仓库取的别名 url:远程仓库地址

git fetch [remote]                // 下载远程仓库所有变动
git remote -v                     // 显示所有远程仓库名称
git remote show [remote]          // 显示某个远程仓库的信息
git pull [remote] [branch]        // 取回远程仓库的变化,并与本地分支合并
git push [remote] [branch]        // 上传本地指定分支到远程仓库
git push [remote] --force         // 强行推送当前分支到远程仓库,即使有冲突
git push [remote] --all           // 推送所有分支到远程仓库

 

posted @ 2019-07-12 11:45  我咯I  阅读(118)  评论(0编辑  收藏  举报