Git 常用操作命令记录

安装Git

官网安装指导地址

MAC下使用HomeBrew安装

如果没有HomeBrew,在终端输入以下命令尝试安装:

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

利用brew安装版本的Git

$ brew install git

Git 相关命令

命令 相关操作 解释
init $ git init 创建本地版本库
config $ git config --global user.name "yourName" 配置name信息
$ git config --global user.email "yourEmail" 配置邮箱信息
add $ git add fileName 添加文件到staged状态
$ git add . 添加所有文件到staged状态
status $ git status 查看库文件当前状态
commit git commit -m "填写相关描述信息" 将处于stage状态的文件提交到本地库中
$ git commit -am "填写相关描述信息" 合并add操作,一步到位
$ git commit --amend --no-edit 追加已经commit的操作, 此时会删除最后一条记录并产生新的一条记录 (commit id 不同),注意要先将改动的文件add到staged状态
log $ git log 查看库的操作日志
$ git log --oneline 查看库的操作关键信息,每个 commit 内容显示在一行
$ git log --oneline --graph 查看库的操作关键信息,包括分支信息
diff $ git diff 查看unstaged状态的文件
$ git diff --cached 查看 staged状态的文件(add过的文件)
$ git diff HEAD 查看 staged & unstaged (HEAD)
reset $ git reset fileName 回到add之前状态(unstaged)
$ git reset --hard HEAD 查看上次 commit 的HEAD指针指向的id
$ git reset --hard commitId 回到 commit 之前(回滚): hard 会清除 7cd4e4e 之后的所有操作提交
$ git reset --soft commitId 回到 commit 之前(回滚): soft 会保留 7cd4e4e 之后的所有操作
reflog $ git reflog 查看所有 HEAD 的改动,配合 reset --hard 的可恢复之前的删除操作
checkout $ git checkout dev1.0 切换分支/tag
$ git checkout -b dev1.0 创建并切换本地分支
$ git checkout -b dev1.1 origin/dev1.1 将远程分支添加到本地
$ git checkout commitId -- fileName 让文件回滚到某一次 commit
branch $ git branch 查看当前分支
$ git branch -a 查看全部分支
$ git branch dev1.0 创建分支
merge $ git merge dev1.0 合并分支
$ git branch -d dev1.1 删除本地分支
$ git merge --no-ff -m "相关描述信息" dev1.0 合并分支,保留分支上commit信息
stash $ git stash 暂存修改
$ git stash list 查看 stash 中的暂存任务
$ git stash pop 继续暂存任务
fetch $ git fetch origin dev1.0 拉取远程版本库到本地版本库(需要再次merge)
pull $ git pull origin dev1.0 拉取远程版本库到本地版本库,并将其merge到本地项目中
push $ git push -u origin dev1.0 推送本地版本库到远程版本库
$ git push origin :branch-name 删除远程分支或tag
$ git push origin branch-name1:branch-name2 替换远程分支
remote $ git remote add origin remoteAddress 添加并链接到远程库
$ git remote rm origin 删除远程库
tag $ git tag 查看标签
$ git tag v1.0.0 -light 创建轻量标签
$ git tag -a v1.0.0 -m "release 0.1.0 version" -a即annotated的缩写,指定标签类型,后附标签名
$ git push origin v1.0.0 发布标签,提交到git服务器
$ git push origin –tags 将本地所有标签一次性提交到git服务器
$ git tag -d v1.0.0 删除标签
$ git checkout tagname 切换标签
$ git tag -a v1.0.0 commitId 补打标签

init

进入相关文件夹创建本地版本库

$ git init

config

配置相关信息

$ git config --global user.name "yourName
$ git config --global user.email "yourEmail"

add

添加文件到staged状态

$ git add <file>

添加所有文件到staged状态

$ git add .

status

查看库文件当前状态

$ git status

commit

将处于stage状态的文件提交到本地库中

$ git commit -m "填写相关描述信息"

合并add操作,一步到位

$ git commit -am "填写相关描述信息"

追加已经commit的操作, 此时会删除最后一条记录并产生新的一条记录 (commit id 不同),注意要先将改动的文件add到staged状态

$ git commit --amend --no-edit      

log

查看库的操作日志

$ git log

查看库的操作关键信息,每个 commit 内容显示在一行

$ git log --oneline

查看库的操作关键信息,包括分支信息

$ git log --oneline --graph

diff

查看unstaged状态的文件

$ git diff

查看 staged状态的文件(add过的文件)

$ git diff --cached

查看 staged & unstaged (HEAD)

$ git diff HEAD 

reset

回到add之前状态(unstaged)

$ git reset <file>

查看上次 commit 的HEAD指针指向的id

$ git reset --hard HEAD 

回到 commit 之前(回滚): hard 会清除 7cd4e4e 之后的所有操作提交

$ git reset --hard <commit id>

回到 commit 之前(回滚): soft 会保留 7cd4e4e 之后的所有操作

$ git reset --soft <commit id>

reflog

查看所有 HEAD 的改动,配合 reset --hard 的可恢复之前的删除操作

$ git reflog

checkout

让文件回滚到某一次 commit

$ git checkout <commit id> -- <file>

切换分支

$ git checkout dev1.0

创建并切换分支

$ git checkout -b dev1.0

branch

查看当前分支

$ git branch 

$ git branch -a #查看全部分支

创建分支

$ git branch dev1.0

merge

合并分支

$ git merge dev1.0

合并分支,保留分支上commit信息

$ git merge --no-ff -m "相关描述信息" dev1.0 

stash

暂存修改

$ git stash

查看 stash 中的暂存任务

$ git stash list 

继续暂存任务

$ git stash pop

fetch

拉取远程版本库到本地版本库(需要再次merge)

$ git fetch origin dev1.0

pull

拉取远程版本库到本地版本库,并将其merge到本地项目中

$ git pull origin dev1.0

push

推送本地版本库到远程版本库

$ git push -u origin dev1.0

常见问题

解决merge冲突

<<<<<<< HEAD
# edited in master
=======
# edited in dev
>>>>>>> dev

删除"<<<<","====",">>>>"中问题code,重新提交

$ git commit -am "解决xxx冲突"

链接本地版本库,并将分支 push 推送到Git上

$ git remote add origin git@github.com:LOLITA0164/PhotoBrowser.git
$ git push -u origin master     # 推送本地 master 去 origin
$ git push -u origin dev        # 推送本地 dev  去 origin

注意事项:

创建一个未初始化的远程库

正确姿势出现如下图样式

正确样式

出现fatal: remote origin already exists.错误

如果链接本地版本库出现上面错误,尝试删除重试

$ git remote rm origin

pull时候出现fatal: refusing to merge unrelated histories

因为网上和本地的是不同的两个仓库,(网上的已经初始化过了,这种情况通常是clone下来再开发)如果需要合并,输入以下命令尝试

git pull origin <分支如master> --allow-unrelated-histories

Clone 克隆Git上的版本库

git clone sourceAddress destinationAddress

如:

git clone git@github.com:LOLITA0164/PhotoBrowser.git ~/Desktop/PhotoBrowser

添加远程分支到本地分支

$ git checkout -b dev1.1 origin/dev1.1

删除本地分支

$ git branch -d dev1.1

过程

...

1、拉取最新需要开发的分支到本地(fetch、merge)
2、开发功能,push前,再次拉取最新code
3、1-2循环
4、版本完成,merge到master分支,将该版本push到远程库中
5、打上tag,release该版本
6、1-5循环

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

推荐阅读更多精彩内容