Git常用命令
cpsa3 opened this issue · comments
cpsa3 commented
提交代码
git status //查看本地版本状态
git add . //添加本地修改文件
git add -A //会将未通过git rm删除的文件全部stage
git commit -m 'comment' //提交到本地仓库
git push origin master //提交到远程仓库
创建远程分支:
git branch dev9.2 // 创建新本地分支
git checkout dev9.2 //切换至新本地分支
git add .
git commit -m '新提交'
git push origin <local_branch_name>:<remote_branch_name> //push本地分支至远程分支
clone分支并建立tracking:
git clone https://github.com/cpsa3/hello-world.git dev9.2
git checkout -t origin/dev9.2 //获取远程分支到本地,并自动建立tracking
创建tag:
git tag -a v1.4 -m 'version 1.4' //创建含附注的标签
git tag //显示已有标签
git tag -d v1.0.0 //删除本地标签 v1.0.0
git push origin :refs/tags/v1.0.0 //删除远程tag
git push origin v1.0.0 //推送本地tag至远程(命令和推送远程分支一样,优先识别为分支)
git show v1.0.0 //显示tag或branch信息
git push origin :<branch_name> //删除远程分支(本地分支会保留)
git checkout -b branch_name tag_name //从tag创建分支
查看历史
git log --pretty=oneline // 一行显示log(不能察看已删除的commit记录)
git log --stat //查看提交统计信息
git reflog //可查看所有分支的所有操作记录(包括已经删除的commit)
git show commit-id // 查看某次修改
本地代码回滚
git reset HEAD //回滚至最新一次的提交
git reset --hard commit-id //回滚到commit-id,将commit-id之后提交的commit都去除
git reset --hard HEAD~3 //将最近3次的提交回滚
回滚远程代码(原理:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支):
git checkout the_branch
git pull
git branch the_branch_backup //备份一下这个分支当前的情况
git reset --hard the_commit_id //把the_branch本地回滚到the_commit_id
git push origin :the_branch //删除远程 the_branch
git push origin the_branch //用回滚后的本地分支重新建立远程分支
git push origin :the_branch_backup //如果前面都成功了,删除这个备份分支
获取远程版本
git pull //从远程获取最新版本并合并到本地仓库:等同于git fetch + git mearge
撤销修改
git checkout -- <filename> //撤销某文件修改
git checkout . //撤销所有未提交修改
标签功能
git tag // 显示所有标签
git tag v1.3 // 简单打标签
删除文件
git rm <filename> //直接删除文件
git rm --cached <filename> //删除文件暂存状态
文件比较
git diff //查看未暂存的文件更新
git diff --cached //查看已暂存文件的更新
分支操作
git branch <branch_name> //创建本地分支
git checkout -b master develop //创建并切换到develop分支
git branch -r //查看远程分支
git branch //查看本地分支
git branch -av //查看所有分支
git push origin <branch_name> //将本地分支push至远程服务器
git checkout <branch_name> //切换本地分支
git branch -d <branch_name> //删除本地分支
git push origin :<branch_name> //删除远程分支(本地分支会保留)
git push origin <local_branch_name>:<remote_branch_name> //push本地分支至远程分支
git checkout -b dev origin/dev //获取远程分支到本地,并自动建立tracking
git checkout -t origin/dev //获取远程分支到本地,并自动建立tracking
git checkout --track origin/dev //获取远程分支到本地,并自动建立tracking
git mearge <branch_name> //分支合并(将指定名称的分支与当前分支合并)
git pull origin <branch_name> //拉去远程分支
git merge --abort //undo mearge[Since git version 1.7.4]
合并分支
git checkout master //切换到主分支
git merge --no-ff develop //把develop合并到master分支,no-ff选项的作用是保留原分支记录
git rebase develop //合并分支
git branch -d develop //删除develop分支
Git设置
git config --list //查看config
git config --global --list //查看全局config
git config user.name "xx" //设置user.name
git config user.email "xx@xx.com" ////设置user.email
git remote -v //查看远程分支别名
初始化项目
cd [package folder]
git init
git add
git commit -m "Initial"
git remote add origin [your git repo]
git pull origin master //同步远程库最新代码至本地
git push origin master
Stash使用:
git stash // 保存
git stash list //查看
git stash pop stash@{num} //num 是你要恢复的操作的序号,git stash pop命令是恢复stash队列中的stash@{0},然后从记录就删除,就是常规的pop操作
git stash clear // 删除(清空)
其他命令:
git merge --abort //revert merge(http://stackoverflow.com/questions/2389361/undo-a-git-merge)
git diff > mypatch.patch //If you haven't commited the changes
git apply mypatch.patch // apply patch