关闭

Git常用命令

标签: git命令整理
15人阅读 评论(0) 收藏 举报
分类:

下面是我整理的git常用命令,适合 学习过并使用过 git 后有段时间没用的朋友查阅回忆。没学过git乱用很可能会把自己的代码搞砸.

Git常用命令

基本

git config [--global] user.name=yourname 配置用户名

git config [--global] user.email=youremail  配置用户邮箱

git config -l 查看配置信息

git clone <url> [directory name]        克隆远程仓库到directory name文件夹,没指定就以项目名创建文件夹并clone进去;

git status 查看当前的work directory和stage area情况,以及当前分支和远程关联分支的提交情况对比信息;

git add <.|file name1 file name2 ......> 添加modified文件到stage area以备commit;

git commit -m “commit message” 提交stage area里的修改到当前分支;

 

git remote -v查看远程库名及url;

git remote add <remote name> <url> 添加远程库;

git remote set-url <remote name> <url> 更改远程仓库;

git push origin local_branch:remote_branch   将本地某分支推送到origin远端某分支 ;

git pull origin remote_branch:loacl_branch  将远端某分支拉取到本地某分支      ;

git push 推送本地当前分支到远端关联分支(远端分支得到更新)

git pull 拉取远端关联分支到本地当前分支(当前分支得到更新)

查看分支关联用 git branch -vv

 

版本回退

git log [-graph] [--pretty=oneline]  查看commit日志;

git reset --hard <HEAD^ | HEAD~n> 版本向前回退n个commit;

git reset --hard <commit_id> 直接定位到commit_id的版本;

git reflog 查看HEAD移动日志,可用于获得回到将来版本的commit_id;

 

git diff 查看版本库与工作区的差别;

git diff HEAD -- file_name 查看某文件在版本库中与工作区的差别;

 

查看 staging area 和 working directory 中文件的差异。

¡ git diff: 查看 working directory 与 staging area 之间的差异

¡ git diff --cached: 查看 repository 与 staging area 之间的差异

¡ git diff HEAD: 查看 working directory 与 repository 之间的差异

 

 

撤销修改

git checkout -- file  把file文件在工作区的修改全部撤销;

 

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

 

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

 

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

*撤销不小心提交的错误的最新commit:

 

git reset [--选项] <HEAD~n | commit_hash>

example:

git reset HEAD~1 文件保留修改,版本库回退到上个commit

git reset --soft HEAD~1文件保留修改,版本库最新commit送回staged area并同时回退到上个commit

--soft 参数将上一次的修改放入staging area

--mixed 参数将上一次的修改放入working directory

--hard 参数直接将上一次的修改抛弃

 

 

 

标签管理

 git tag <tag_name> 在当前分支最新提交上建立标签;

 git tag <tag_name> <commit_id> 为给定id 的commit打上标签;

 git tag 查看本地标签;

 git tag -d tag_name 删除tag_name标签;

 git show <tag> 查看tag信息;

 git push origin tag_name 将tag_name标签送到远仓;

 git push origin --tags 一次性推送全部尚未推送到远程的本地标签;

 git push origin :refs/tags/v0.9 或 git push origin --delete tag v9.0  删除origin远仓的v0.9标签;

 

分支管理

git branch [-avv] 查看分支信息;

git checkout branch_name  切换到branch_name分支;

git checkout -b branch_name   创建并切换到branch_name分支;

git branch -d branch_name 删除branch_name分支;

git push origin branch_name 将当前分支推送到origin远程仓库的branch_name分支;

 

慎用:git merge <branch>合并某分支到当前分支,加--no-ff取消快速合并,即git merge --no-ff -m <massage>  。这个分支合并操作可能会产生冲突(如果你在某个版本点建了new分支之后两个分支都提交了新的commit),需要手动解决这些冲突以继续合并,所以建了new分支后尽量在new分支工作,原分支(你打算要把new分支工作完成后合并回去的)不要提交新的commit ,new分支上工作完成确定无误了就可以顺利合并;

 

关于本地分支与远仓分支的关联,在下面

 

——————————————————————————

 

git stash 将现在的修改暂存起来,去紧急修改之前的bug;

git stash list 查看应急暂存的修改;

一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

另一种方式是用git stash pop,恢复的同时把stash内容也删了;

 

git branch -avv 查看本地和远程仓库的分支信息及最新提交信息,以及本地和远程分支的关联;

git checkout -b dev -- track origin/dev 拉取远仓的dev分支到本地新建的dev分支,并切换到dev分支,同时建立本地dev分支和远仓dev分支的关联;

 

git branch --set-upstream dev origin/dev 建立本地dev分支和远仓dev分支的关联;

git branch --set-upstream-to origin/branch_name建立本地当前分支和远仓branch_name分支的关联;

 

git push origin :branch 或 git push origin --delete <branch>删除origin远仓的branch分支;

;

git show <commit-hashId> 便可以显示某次提交的修改内容

同样 git show <commit-hashId> filename 可以显示某次提交的某个内容的修改信息。

 

git commit --amend提交为上一个commit的修复

 

git blame <file> 查看file文件每行的修改人

 

撤销最新commit

git reset HEAD~1 文件保留修改,版本库回退到上个commit

git reset --soft文件保留修改,版本库最新commit送回staged area并同时回退到上个commit

;

 

比较两个分支的差异

1.查看 dev 有,而 master 中没有的:

git log dev ^master

¡ 1

2.同理查看 master 中有,而 dev 中没有的内容:

git log master ^dev

    查看 dev 中比 master 中多提交了哪些内容:

git log master..dev

1

注意,列出来的是两个点后边(此处即dev)多提交的内容。同理,想知道 master 比 dev 多提交了什么:

git log dev..master

3.不知道谁提交的多谁提交的少,单纯想知道有什么不一样:

git log dev...master

4.在上述情况下,再显示出每个提交是在哪个分支上:

git log --left-right dev...master

 

 


1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Git常用命令,很全很详细讲解的也不错

git常用命令讲解
  • afei__
  • afei__
  • 2016-05-22 19:45
  • 15366

Git 常用命令速查表

http://blog.chinaunix.net/uid-27714502-id-3435772.html git的各种命令实在是太多了,我们常常记不住,现结合网上的一些文章总结如下: 1、常用的Git命令 命令 简要说明 git ...
  • snowsnowsnow1991
  • snowsnowsnow1991
  • 2017-05-23 18:03
  • 115

Git 常用命令总结

git的一些基础命令 Git常用命令 请确保已经安装里git客户端 一般配置 git --version //查看git的版本信息 git config --global user.name //获取当前登录的用户 git config --global user.email ...
  • tomatozaitian
  • tomatozaitian
  • 2017-06-20 20:23
  • 2179

Git 常用命令速查

转自http://www.jb51.net/article/55442.htm 一、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态  git commit 提交  git branch -a 查看所...
  • gnnulzy
  • gnnulzy
  • 2016-09-02 10:23
  • 627

Git 常用命令速查表(图文+表格)

Git 常用命令速查表(图文+表格) 一、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态  git commit 提交  git branch -a 查看所有的分支 git branch -r 查看远程所...
  • peterxiaoq
  • peterxiaoq
  • 2017-06-20 13:06
  • 380

GIT常见命令详解

git clone git remote git fetch git pull git push 本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解。同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值。 ...
  • moshenglv
  • moshenglv
  • 2016-07-06 16:29
  • 506

Git 常用命令

Git 常用命令
  • a_Keri
  • a_Keri
  • 2017-12-29 09:47
  • 124

Git常用命令总结

以下为本人在工作中用git进行代码管理的笔记,按命令进行总结,仅供参考。
  • zxc637841323
  • zxc637841323
  • 2017-01-04 20:59
  • 771

Git学习5:Git常用命令简明用法

不要使用git commit -a该命令可以对本地所有的变更文件(包括对本地修改和删除的文件)执行提交操作,但是不包括未被版本库跟踪的文件。git命令补充说明显示.git目录所在的位置git rev-parse --git-dir显示工作区的位置git rev-parse --show-toplev...
  • u011116672
  • u011116672
  • 2016-04-27 15:52
  • 4240

Git与GitHub常用命令

常用的 git 命令 常用的 GitHub 命令
  • man_help
  • man_help
  • 2016-07-06 17:06
  • 2727
    个人资料
    • 访问:112次
    • 积分:69
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档