Git 简便安装方法及常用命令总结

一.在Mac OS X上安装git

Xcode集成了git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Locations”,选择“Command Line Tools”,点“Install”就可以完成安装了。

二. git常用命令

git通用操作流程
* 工作区:本地电脑存放项目文件的地方,比如learnGitProject文件夹;
* 暂存区(Index/Stage):在使用git管理项目文件的时候,其本地的项目文件会多出一个.git的文件夹,将这个.git文件夹称之为版本库。其中.git文件夹中包含了两个部分,一个是暂存区(Index或者Stage),顾名思义就是暂时存放文件的地方,通常使用add命令将工作区的文件添加到暂存区里;
* 本地仓库:.git文件夹里还包括git自动创建的master分支,并且将HEAD指针指向master分支。使用commit命令可以将暂存区中的文件添加到本地仓库中;
* 远程仓库:不是在本地仓库中,项目代码在远程git服务器上,比如项目放在github上,就是一个远程仓库,通常使用clone命令将远程仓库拷贝到本地仓库中,开发后推送到远程仓库中即可;
  • git配置

列出当前配置:git config --list;
列出repository配置:git config --local --list;
列出全局配置:git config --global --list;
列出系统配置:git config --system --list;

配置用户信息:
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

其他配置:
配置解决冲突时使用哪种差异分析工具,比如要使用
vimdiff:git config --global merge.tool vimdiff;
配置git命令输出为彩色的:git config --global color.ui auto;
配置git使用的文本编辑器:git config --global core.editor vi;

导入第三方库提醒
error: RPC failed; curl transfer closed with outstanding read data remaining

原因:curl的postBuffer默认值太小,需要在终端重新配置这个值
解决:将curl的postBuffer值配置为500M,具体值看项目需求,配置成功不会有提示,配置失败会有提示,
终端输入命令:
git config --global http.postBuffer 524288000
  • 常用命令

* 新建仓库:
git init                将工作区中的项目文件使用git进行管理,即创建一个新的本地仓库:
git clone <url> mygit   将github项目clone到本地,被clone的项目将作为远程库。
克隆项目时如果想定义新的项目名,可以在clone命令后指定新的项目名mygit:


* 提交:
git add <file>  把文件修改添加到暂存区。(注意:添加到仓库,需要执行提交操作才能把文件放到仓库。)
git add .       提交工作区所有文件到暂存区:
git add [dir]   提交工作区中某个文件夹中所有文件到暂存区

区别
git add .   会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
git add -u  仅监控已经被add的文件(即tracked file),会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)
git add -A  是上面两个功能的合集(git add --all的缩写)

git commit -m "commit_info"    把文件提交到仓库。
git commit -a -m "commit_info"    跳过add到暂存区的过程,将所有已经使用git管理过的文件暂存后一并提交
git commit --amend    撤销上一次提交


* 撤销:
git rm <file>  删除工作区文件,并且也从暂存区也删除对应文件的记录
git rm --cached <file>   从暂存区中删除文件,但是工作区依然还有该文件
git reset HAED <file>    把暂存区的修改撤销掉,重新放回工作区。
git reset --hard commit_id    回退到以前的版本。Git中用HEAD表示当前版本,上一版本为HEAD^,上上版本为HEAD^^,假如为往上100版本,则可表示为:HEAD~100。
git checkout -- file     丢弃工作区的修改。git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。如果想保留上一次的修改以备以后继续工作,可以使用stashing和分支来处理


* 重命名文件:
git mv [file-original] [file-renamed]    并将已改名文件提交到暂存区
  • 查看信息:

git status    查看当前工作区暂存区变动
git status -s    概要信息
git status  --show-stash  查询工作区中是否有stash存在(暂存的东西),有则提醒该工作区有几个 stash

git diff     查看修改的内容,比较工作区中当前文件和暂存区之间的差异,也就是修改之后还没有暂存的内容
git diff --cached    比较暂存区与上一版本的差异
git diff <file-name> --cached   指定文件在工作区和暂存区上差异比较

git log     查看提交历史
git log --pretty=oneline     查看排版的日志
git log --oneline  输出概要日志(等同于git log --pretty=oneline --abbrev-commit)
git log --oneline -5   指定最近几个提交可以带上
git log --graph --date=relative --pretty=tformat:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%an %ad)%Creset'   提供类似 GUI 工具的 log 展示, 相对提交时间展示
git log -p -2    参数-p展开每次提交的内容差异,用-2显示最近的两次更新
git reflog:查看命令历史。可用来确定要回到未来的哪个版本。
  • 远程操作

git remote add origin git@github.com:GitHubName/repo-name.git:关联一个GitHub远程库。通用结构:git remote add origin git@server-name:path/repo-name.git。
git push -u origin master:第一次向远程库推送master分支的所有内容。
git push origin master:向远程库推送最新修改。
git pull:抓取远程的新提交,保持本地和远程同步。
git pull origin master:把master分支的最新状态抓取到本地。
git remote -v:查看远程库信息。


git checkout -b branch-name origin/branch-name:在本地创建和远程分支对应的分支,名称最好一致。
git branch --set-upstream branch-name origin/branch-name:建立本地分支和远程分支的关联。
git push origin <tagname>:推送某个标签到远程。
git push origin --tags:一次性推送全部尚未推送到远程的本地标签。
git push origin:refs/tags/<tagname>:删除远程标签。(先删除本地的标签)
  • 分支操作

git branch:查看所有分支
git branch <name>:创建分支
git checkout dev  分支切换# local branch
git checkout origin/test 切换远程分支
git checkout --track origin/feature-test   基于远程分支创建本地分支,并跟踪对应来自 'origin' 的远程分支
git checkout -b testbranch  基于本地分支开出新分支
git checkout -- file    彻底丢弃某个文件的改动
git checkout .    放弃本地所有改动

# 切换上一个分支
git checkout -
\\
git merge <name>:合并某个分支都当前分支
git branch -d <name>:删除分支
git merge --no-ff -m "描述" <name>:记录分支情况的合并分支方法。
  • stash操作

git stash:储藏当前工作状态
git stash list:查看储藏的工作列表。
git stash apply:应用最新的储藏,恢复工作状态,但恢复后stash的内容并不删除。
git stash apply stash@{2}    如果想应用更早的储藏
git stash apply --index    重新应用被暂存的变更,需要加上--index参数 
git stash drop    删除最近一次stash的内容
git stash drop stash{0}     删除指定一次stash的内容
git stash clear    清空所有的stash内容。
git stash pop    恢复工作状态并删除相关stash内容。

在某些情况下,你可能想应用储藏的修改,在进行了一些其他的修改后,又要取消之前所应用储藏的修改。Git没有提供类似于 stash unapply 的命令,但是可以通过取消该储藏的补丁达到同样的效果:git stash show -p stash@{0} | git apply -R;同样的,如果你沒有指定具体的某个储藏,Git 会选择最近的储藏:git stash show -p | git apply -R;
  • 标签操作

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

推荐阅读更多精彩内容

  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,661评论 4 54
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,651评论 18 139
  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,471评论 1 26
  • 本文为 Git教程的学习笔记,教程源自廖雪峰的博客。这是一个由浅入深,学完后能立刻上手的Git教程。另,附上另一本...
    七弦桐语阅读 6,245评论 5 47
  • 文/卡兰诺 释迦牟尼说过一句话:“无论你遇见谁,他都是你生命该出现的人,绝非偶然,他一定会教会你一些什么”。所以我...
    卡兰诺阅读 587评论 2 8