git 常用命令
2017-01-03 本文已影响97人
在宇宙Debugger
其他
// 全局配置:
git config --global user.name "mtshen"
git config --global user.email "mtshen@37degree.com"
// 克隆仓库
git clone git@192.168.1.1:mtshen/test.git
// 修改文件
cd testecho "master" >> master.txt
// track文件
git add master.txt
// 提交到本地库
git commit -m 'first commit'
// 本地库推送到远程
git push -u origin master
// 查看本地状态
git status
// 重命名文件
git mv file_old file_new
// 从版本库中删除文件,本地文件也删除
git rm file
// 从版本库中删除文件,本地文件不删除
git rm file --cached
// tracked的文件变为untracked
echo "new" >> new.txt
git add new.txt
git status
git reset -- new.txt
git status
// 取消某个已经在版本库里文件的修改
echo "append" >> dev.txt
git checkout -- dev.txt
// 查看修改历史
git loggit log -- file
git log -p -2 -- file
// 只删除所有untracked的文件
git clean -dfx
// 只把所有tracked的文件恢复到前一个版本
git reset --hard
// 将远程的修改更新到本地
git pull
// 清理屏幕
clear
分支
// 查看本地分支
git branch
// 查看远程分支
git branch -r
// 重命名本地分支
git branch -m dev dev2
// 删除本地分支
git branch -d dev
// 删除远程分支
git push origin :dev
// 合并分支
git merge mtshen
// 克隆分支并切换
git checkout master -b mtshen
// checkout远程已有分支
git checkout -b dev origin/devecho "dev" >> dev.txt
git add dev.txt
git commit -m 'dev'
git push -u origin dev
// 从本地分支创建新分支
git checkout -b devecho "dev" >> dev.txt
git add dev.txt
git commit -m 'dev'
git push -u origin dev
标签
// 查看已有标签
git tag
// 添加标签
git tag -a tag2.1.1 -m "2.1.1"
// 将标签推送到远程
git push origin tag2.1.1
// 补加标签
git log
git tag -a tag2.1.1 9fbc3d0
// 删除本地标签
git tag -d tag2.1.1
// 删除远程标签
git tag -d 3.0.4
git push origin :refs/tags/3.0.4
// 重命名标签
git tag -d 3.0.4
git push origin :refs/tags/3.0.4
git push origin --tags
git tag -a 3.0.5 -m "3.0.5"
git push origin --tags
冲突:
// dev-one:
git clone git@192.168.1.46:rlliang/test.git
cd testecho "aaa" > a.txt
echo "bbb" >> a.txt
git add a.txt
git commit -m 'first commit'
git push -u origin master
// dev-two:
git clone git@192.168.1.46:rlliang/test.git
cd test
// dev-one:
echo "ccc" > a.txt
echo "bbb" >> a.txt
git add a.txt
git commit -m 'second commit'
git push -u origin master
// dev-two:
echo "ddd" > a.txt
echo "bbb" >> a.txt
git add a.txt
git commit -m 'third commit'
git push -u origin master
// 撤销提交到远程的commit:
git clone git@192.168.1.46:rlliang/test.git
cd test
echo "1" > 1.txt
git add .
git commit -m "1"
git push -u origin master
echo "2" > 2.txt
git add .
git commit -m "2"
git push -u origin master
echo "3" > 3.txt
git add .
git commit -m "3"
git push -u origin master
git log
git revert 9dbadceb096e42957213a6554fe24b5f2d46f332
git push -u origin master
提交
git pull
git add .
git commit -m “备注”
git push
多分支的提交流程:
假设有分支master和mtshen,master为主分支
mtshen:
git add .
git commit -m “备注”
git checkout master
master:
git pull
git merge mtshen
git commit -m “备注”
git push
git checkout mtshen
mtshen:
git merge master
错误
如果出现error可以进行以下2中解决方式)如果出现error,可以进行以下2中解决方式
1.使服务器文件直接覆盖本地文件
git reset --hardgit pull
2.使服务器与本地代码合并,并手动解决冲突 (常用)
git stash
git pull
git stash pop // 处理可能出现的冲突
常见错误
error: Your local changes to the following files would be overwritten by merge: index.php
如果发现该异常,说明该代码有冲突,解决办法: 见错误解决方式 2
CONFLICT (content): Merge conflict in xxxx.js
如果发现该异常说明代码已经存在冲突了,修改完冲突之后执行一遍提交流程
fatal: Not a git repository (or any of the parent directories): .git
如果发现该异常,说明你没有正确进入git项目的目录,检查你的路径