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循环

猜你喜欢

转载自blog.csdn.net/lolita0164/article/details/79525266