git常用命令

查看Git的版本:git --version

通过以下代码可查看当前Git配置信息:git config --list/git config -l

通过指定的配置名来获取单独的配置信息:git config user.name

配置全局用户名和邮箱:
git config --global user.name "hcq"
git config --global user.email "hcq@gmail.com"
我们的某一个项目想要用特定的邮箱,这个时候只需切换到你的项目,以上代码把--global参数去除,再重新执行一遍就ok了

删除某个配置:git config --global --unset user.name AndroidName

git config --global alias.st status
通过上面可以使用st来取代status指令

笔者还找到一个关于Git log比较好的Alias,可以显示出比较清晰的log信息:
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset
%s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

进入一个Git项目目录,显示所有所有文件:ll -a

通过git init指令就可以在文件目录下创建成一个Git代码仓库,在创建成功后就会在该目录下生成一个.git隐藏文件夹

git clone用于clone一个远程仓库到本地

git status 查看文件的提交状态

git log用来查看文件修改状态,git shortlog 可以根据提交者的名字进行分组,显示每个开发者的所有提交记录,更多指令可以通过git log –help来获取Log指令的详细参数

git show <commitId> 可以显示某次提交的修改内容

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

可以通过git blame指令追溯一个指定文件的历史修改记录

可以通过git diff指令查看发生变化文件的具体变化,例如输入git diff README

git diff指令除了比较指定文件的差异,还可以比较提交节点间的差异,例如使用以下代码比较与上一个commit节点间的差异git diff HEAD

git add操作实际上是将修改记录保存到暂存区,git commit操作就是将暂存区的内容全部提交,但如果内容不add到暂存区,那么commit也就不会提交修改内容

git commit -am "str"等同于git commit -a -m "str",某种程度上相当于git add和git commit -m的组合使用,只用一步就可以提交

git commit --amend 适用于如果上次提交的有问题,需要做一些修改,同时又不希望产生两条提交记录,可以使用该命令。这样在git log上就只会有一条提交记录,用这次提交的message信息覆盖上次的,如果没有commit message的话,提交记录上沿用上一次的提交message。可以参考:https://www.jianshu.com/p/a8a2ac58f37d

checkout还有一个撤销的作用,假设我们在一个分支开发一个小功能,刚写完一半,这时候需求变了,而且是大变化,之前的代码完全用不了了,好在你刚写,甚至都没有git add进暂存区,这个时候很简单的一个操作就直接把原文件还原:git checkout a.md
git checkout . 本地所有修改的。没有的提交的,都返回到原来的状态。这个指令可以撤销所有修改的文件

执行add指令将代码提交奥暂存区后,再修改该文件,此时如果继续执行checkout指令,则会将该文件恢复到执行add操作后的初始状态,即恢复add后的所有修改

版本回退:用git log可以查看提交历史,以便确定要回退到哪个版本,通过git reset --hard commit_id 回到指定的commit_id的提交版本。如果我们回退之后,发现回退错了,需要恢复到上一个版本,这个时候我们可以通过git reflog指令,查看操作历史,从而获取之前的commit id进行恢复

用HEAD表示当前版本,也就是最新的提交,上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100
回退到上个版本:git reset --hadr HEAD^
回退到上个版本:git reset --hadr HEAD^^
回退到往上100个版本:git reset --hadr HEAD~100
注意:
git reset --hard 表示回退到上一次的提交,工作区间与上一次提交保持一致,不会保留本次提交的代码
git reset --soft 表示回退到上一次的提交,但是工作区间会保留这次提交的代码修改

远程分支版本回退:如果你的提交已经推送到自己的远程分支了,那么就需要回滚远程分支了。
首先要回退本地分支:
git reflog
git reset --hard Obfafd
紧接着强制推送到远程分支:
git push -f

git rm a.txt 指令可以删除指定的文件,省去了重新执行git add,git commit的操作。
相当于通过如下方式删除文件:
rm add2.txt
git add add2.txt
git commit -m "rm test"

Git常用操作命令收集:

  1. 远程仓库相关命令
    检出仓库: git clone git://github.com/jquery/jquery.git
    查看远程仓库: git remote -v
    添加远程仓库: git remote add [name] [url]
    本地的仓库和远程的仓库进行关联,将本地添加到远程服务器
    git remote add origin git@github.com:YotrolZ/helloTest.git origin后面是远程仓库的git地址
    指令中的origin指的就是远程仓库的名字,你也可以叫别的名字,但是默认远程仓库都叫origin,以便区分。
    删除远程仓库: git remote rm [name]
    查看我们当前项目有哪些远程仓库:git remote -v
    修改远程仓库: git remote set-url --push[name][newUrl]
    拉取远程仓库: git pull [remoteName] [localBranchName],一般直接使用git pull
    推送远程仓库: git push [remoteName] [localBranchName] git push origin [remoteName]

git push -u origin master 把修改推送到远程仓库
由于git push指令加上了-u参数,所以Git不但会把本地的master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来

在Push到远程分支之后,再次Push的时候就不用-u参数了,可以直接使用git push或者git push origin master指定仓库和分支名将新的修改推送到远程分支

2)分支(branch)操作相关命令
查看本地分支:git branch 在当前分支上会多一个*,用来表示当前所处的分支
查看远程分支:git branch -r
查看所有分支,即远程和本地分支:git branch -a
创建本地分支: git branch [branchName] ----注意新分支创建后不会自动切换为当前分支
切换分支:git checkout [branchName]
创建新分支并立即切换到新分支:git checkout -b [branchName]
拉取远程分支到本地并切换到该分支:git checkout -b dev(本地分支名称) origin/dev(远程分支名称)
删除本地分支(项目处在哪个分支下,无法使用命令删除该分支): git branch -d [branchName] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
合并分支: git merge [name] ----将名称为name的分支与当前分支合并
创建远程分支(本地分支push到远程,并且远程分支名和本地分支名相同):git push origin [branchName]
提交本地分支作为远程的分支:git push origin <localbranchName>:<originbranchName>
给本地分支设置对应的远程分支:git branch --set-upstream-to=origin/<originbranchName>
git push origin test:test // 提交本地test分支作为远程的test分支
删除远程分支: git push origin :heads/[branch_name] 在Git v1.7.0 之后,可以使用这种语法删除远程分支:git push origin --delete branch_name
git push origin :test // 刚提交到远程的test将被删除,但是本地还会保存的
合并分支(在哪个分支下执行该命令,就是合并到哪个分支):git merge <branchName>或者git rebase <branchName>
查看本地分支最新的提交记录,以及远程分支的提交:git branch -vv
查看所有分支最新的提交记录:git branch -avv

3)版本(tag)操作相关命令
查看版本:git tag
创建版本:git tag [name]
在指定commit id上创建Tag:git tag [name] b687b06
创建带有注释的Tag,通过-a参数可以指定Tag名,通过-m参数指定注释文字:git tag -a v1 -m "version1" b678b06
删除版本:git tag -d [name]
查看远程版本:git tag -r
创建远程版本(本地版本push到远程):git push origin [name]
通过指定–tags参数来推送所有的本地Tag:git push origin --tags
删除远程版本:首先要通过git tag -d [name]删除本地tag,然后再执行git push origin :refs/tags/[name]删除远程tag

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容

  • git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git b...
    猿万阅读 5,055评论 1 45
  • 配置 首先是配置帐号信息 ssh -T git@github.com#登陆github 修改项目中的个人信息 1 ...
    rochuan阅读 720评论 1 1
  • 分布式版本管理工具 git属于分布式 svn集中式 git安装 git初始化一个仓库 其实就是创建了一个.git隐...
    SnowDragonYY阅读 1,504评论 0 0
  • 配置 首先是配置帐号信息ssh -T git@github.com # 登陆 github 修改项目中的个人信息 ...
    guanguans阅读 730评论 0 3
  • 春日落下了秋的叶就如遇见你的那个夏天 日子在阳光的浮影中跳跃你在花丛中追寻蝴蝶的歌唱 你闪亮的毛发伴着你永远的欢笑...
    作者平安阅读 231评论 1 1