git

版本控制之Git常用命令

Posted by Tango on January 2, 2018

Git工作空间介绍

工作空间

见名知意,即是我们所编辑文件所在的目录,在使用 git add命令之前所做的修改都是存在于该文件目录下。可以通过命令 git add 命令将工作空间中所做修改存储到暂存区。

暂存区

见名知意,即是暂时存放文件修改记录的目录,存在于.git版本库中,git add命令之后所做的修改都是存在于该文件目录下。

版本库

见名知意,即是代码版本存储目录,在git commit 命令后文件存储的目录。

Git常用命令

  • 提交代码历程:git add -> git commit -m “Message Infomation” -> git push

  • 查看分支:git branch

  • 创建分支:git branch <name>

  • 切换分支:git checkout <name>

  • 创建+切换分支:git checkout -b <name>

  • 合并某分支到当前分支:git merge <name>

  • 删除分支:git branch -d <name>

  • 查看远程库信息,使用git remote -v

  • 本地新建的分支如果不推送到远程,对其他人就是不可见的;

  • 从本地推送分支,使git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

  • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

  • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name

  • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

  • 放弃对某个文件的修改(所有未提交的状态都丢失) git checkout filename

  • 放弃对所有文件的修改(所有未提交的状态都丢失) git checkout .

  • 将文件的修改暂时存放在缓冲区 git stash

  • 命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

  • ` git tag -a -m "blablabla..."`可以指定标签信息;

  • git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;

  • 命令git tag可以查看所有标签。

  • 修改已经commit的作者信息 git commit --amend --author='user_name <email_name@baidu.com>'

  • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。

  • 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

  • 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。