git 命令

750 阅读4分钟
git 命令行

初始化本地仓库

git init

创建分支(默认为master分支)

git branch guyal 

切换分支

git checkout -b guyal

创建并且切换分支

git checkout -b guyal

查看当前分支

git branch  //(带 * 号的是目前所在分支)

合并分支

git checkout master // 切换到要合并的分支上
git merge guyal // 合并guyal分支到master分支上


项目文件添加到版本库中(也就是本地暂存区),

git add ./  (./表示添加文件夹下的所有文件)

把暂存区的文件提交到仓库

git commit -m "提交说明"

关联远程仓库

git remote add origin 项目远程仓库地址

远程仓库与本地文件同步合并

git pull --rebase origin master(你的分支)

 推送到远程仓库

git push -u origin master

以上为基本流程

 删除本地/远程分支
若删除失败,考虑master 为默认分支, 需要先创建自己的分支

git branch -d/D master // 删除本地master分支
git push origin :master // 删除远程master分支

git branch guyal // 创建分支
git push origin guyal:guyal // 将template分支提交到远程分支上

git checkout -b guyal //创建并切换分支

版本回退
git 本地版本回退

git reset --hard commit_id //使用git log 查看commit_id
git 远程版本回退

git push origin HEAD --force // 远程提交回退
git reset --hard HEAD^1 (HEAD^1 版本回退上一版)
git push --force // 远程提交回退 

查看提交日志

git log  // 退出查看日志状态, 敲q即可

eg: 

commit 3018f35fcd3e86fcb0921245cacbf4a7d0a0d1b6 (HEAD -> guyal, origin/master, origin/guyal, master)
Author: guyal <guyal_910@163.com>
Date:   Tue Nov 21 17:59:06 2017 +0800

    修复用户重新授权实时渲染

commit 43fb35c3d938d79b5f4d17fdb13818547451fe79
Author: guyal <guyal_910@163.com>
Date:   Mon Nov 20 18:15:13 2017 +0800

    四待模块页面基本完成

commit da15a615bcbb3d4f8fe328d44c21db66398e54bf
Merge: 35fdfdf aacb65b
Author: YangYang <18103855639@163.com>
Date:   Mon Nov 20 10:44:06 2017 +0800

    update

git log --oneline

eg:

3018f35 (HEAD -> guyal, origin/master, origin/guyal, master) 修复用户重新授权实时渲染
43fb35c 四待模块页面基本完成
da15a61 update
35fdfdf Merge branch 'yang-dev'
9434aaf update
aacb65b 订单二级页面部分完成
07d7251 待收货一级页面已完成
2fba973 待付款页面已完成
8e7430f  结算中心页面修改css样式已完成
57649bb shopping cart interface completed
9b5159f shopping cart interface completed
32e5c0f completed
8e2c497 completed

分支合并

本地分支更新远程分支 (将本地分支合并到远程分支)

git push origin 本地分支名:远程分支名

远程分支合并本地分支

git pull origin 远程分支:本地分支

查看远程主机信息

查看远程主机名称

git remote

 查看远程主机网址

git remote -v

取回远程仓库的更新

git pull 
取回远程仓库上某个分支的更新, 再与本地的指定分支合并

git pull origin 远程仓库名 远程分支名:本地分支名

eg: 取回origin 主机上的dev分支, 与本地的guyal分支合并
git pull origin dev:guyal

// 如果远程分支是与当前分支合并, 冒号后面的部分可以省略.
git pull origin dev

git fetch 
 同样的结果, 使用git fetch操作

git fetch origin // git fetch 不会自动合并到本地,so.. 
git merge origin/dev //fetch 完成之后需要merge

eg: 
$ git merge origin/dev
fatal: refusing to merge unrelated histories
解决方法(git 版本问题)
// merge之后如果出现fatal: refusing to merge unrelated histories, 则需要在其后加 --allow-unrelated-histories 即可;

git merge origin/yang-dev --allow-unrelated-histories 

合并解决冲突

<<<<<<< HEAD
这里是你的本地代码
=======
这里是远程仓库的代码
>>>>>>> dev

视个人情况删减代码
 解决完成之后执行

git add -u  // 把修改内容加入缓存, 然后在commit
git commit // commit 完成, 查看状态
git status // 会自动进入vim , 输入:wq 即可退出
git push -u origin guyal // 提交即可完成

// vim 保存退出vim 命令
按ESC键 跳到命令模式,然后:

:w   保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w!   强制保存,不推出vi
:wq  保存文件并退出vi
:wq! 强制保存文件,并退出vi
q:  不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑

--------------后续有待更新