git 命令

45 阅读3分钟

初始化本地仓库

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

删除本地/远程分支

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即可

分支合并

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

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! 放弃所有修改,从上次保存文件开始再编辑