git的使用

根据一个例子来进行理解大致整个提交的流程:(Linux环境下)

先创建一个目录:mkdir MyProject

然后进入到该目录:cd MyProject

初始化该目录(创建仓库):git init(这个时候,会在MyProject目录下存在一个隐藏文件.git,Git就是通过该文件来进行文件的跟踪)

在该目录下写自己需要的文件:touch README.md

将文件放到暂存区:git add README.md

将文件提交到Git仓库:git commit -m "add a readme file"

查看文件的状态:git status

只同步当前分支的代码:git pull

Untracked files(未跟踪的文件):指的就是那些在工作区新添加的文件。

将最后一次提交到Git仓库的文件恢复到暂存区域:git reset HEAD <file> ...

  如果自己在工作区新添加了一个文件,并执行操作:

    git add file

  那么再执行:

    git reset HEAD

  那么效果就是撤销了:git add file的这一步操作

当我们刚把一个文件保存到暂存区域,然后又在工作区将文件的内容进行了修改,此时执行:

  git checkout -- <file>...

  那么执行的效果是:Git会用暂存区域的文件将我们工作区的文件覆盖

在工作区域:显示的颜色是红色;在暂存区域:显示的颜色是绿色

查看提交的历史记录:git log

  git log --decorate:显示HEAD的指向

  git log --decorate --oneline:一行只显示一个快照

  git log --decorate --oneline --graph --all:以图像化的方式显示所有分支,并显示HEAD的指向,一行只显示一个

 

stage:驿站  repository:仓库

git reset --soft HEAD~

  移动HEAD的指向,将其指向上一个快照

git reset --mixed HEAD~

  移动HEAD的指向,将其指向上一个快照;然后将HEAD移动后的快照回滚到暂存区域

git reset --hard HEAD~

  移动HEAD的指向,将其指向上一个快照;然后将HEAD移动后的快照回滚到暂存区域;最后将暂存区域的文件还原到工作目录

将快照回滚到指定版本(id用了哈希算法。。。根据指定的id可以往前滚,也可以往后滚):git reset id(这个id就是git log之后显示结果中的那些乱七八糟的数字)

比较暂存区域与工作目录:git diff

 创建分支:git branch 分支名

 切换分支:git checkout 分支名

repo sync  #同步代码(使工作区的代码和server上的代码相同)

HEAD  #表示当前版本,HEAD~:表示上一个版本,HEAD~~:表示上上个版本,HEAD~23:表示往上23个版本

git stash save  将修改的代码保存
git stash apply   将修改的代码拿出来

git branch --all | grep 字段  查找想要的分支

git checkout -b 任意名字(这是本地的分支,最好和服务器的名字对应,便于查看理解) origin/test/func           建立本地分支和远程分支对应

git checkout 分支名   切替到对应的分支

===================================================================

将某个仓库的代码回退到指定的版本:

git reset --hard 版本号

只想更新某个指定的提交:

cherry pick下来就可以

将git add之后的代码回退到本地:

git reset 或者 git restore --staged ./

===================================================================

sudo git difftool

posted @ 2018-07-31 11:53  c&z  阅读(208)  评论(0编辑  收藏  举报