git常用命令

git fetch和git pull的区别

  • git pull = fetch + merge
  • git fetch是取回所有的最新的远程分支更新,不会对本地执行merge操作,所以本地内容不会有改变
  • git pull会从服务器上分支的最新代码更新本地代码对应的分支上

git merge和 git rebase 的区别

https://www.cnblogs.com/MuYunyun/p/6876413.html?utm_source=itdadao&utm_medium=referral


 git配置相关

/*设置用户的姓名,用于每次的commit*/
git config - - global user.name "lw"
/*设置用户的邮箱,用于每次的commit*/
git config - - global user.email lw@example.com  

git创建的仓库

/*将现有的项目转变为Git仓库或者新建一个空的仓库*/
git init
/*克隆仓库*/
git clone '远程仓库地址'      

git提交

/*将单个文件添加到暂存区中*/
git add 'filename'
/*将当前所有文件添加到暂存区中*/
git add .
/*提交文件*/
git commit -m "comment"
/*添加并提交文件*/
git commit -a -m "comment"

git创建分支

git branch                           // 查看本地所有分支
git branch -a                        // 查看本地和远程所有分支
git branch <branch name>             // 创建分支
git checkout <branch name>           // 切换分支
git checkout -b <branch name>        // 创建并切换分支

git删除分支

git branch -d <branch name>                // 删除分支,无法删除未被合并的分支
git branch -D <branch name>                // 强制删除分支,可以删除未被合并的分支

git push origin --delete <branch name> // 删除远程分支

git分支合并

git merge <branch>             // 将branch分支合并到当前分支,当前分支拥有branch分支的记录,branch分支不变
git merge <branch1> <branch2>  // 将分支branch1合并到branch2

/*
git默认使用fast-farward快合并模式,会直接将要被合并的分支指向当前分支; *但是--no-ff不会,它会创建合并点; **/ git merge --no-ff <branch>
/*将两个分支合并成一个线性的提交*/ git rebase <branch>

git查看状态或记录

/**
 *显示文件的状态: staged,unstaged和untracked三种状态
 *untracked:表示版本库中有新创建的文件,但是并为纳入版本库的管理中
 *unstaged:将untracked状态的文件执行 git add 命令后文件状态就是unstaged,此时 
 *意味着git发现这个文件被改动了,但是改动的部分并没有提交到仓库中
 *staged:表示文件已经被提交到仓库中了
 **/
git status

/*显示当前分支的commit记录*/
git log

/*以图的形式显示当前分支的commit记录*/
git log --graph

git比较

/*工作区与暂存区之间的差别,即还没有添加到暂存区的修改,这里比较的是修改内容*/
git diff
/*暂存区与上一次提交的差别*/
git diff --cached
/*比较两次commit之间的差别*/
git diff <commit id1> <commit id2>
/*比较两个分支之间的差别*/
git diff <branch1> <branch2>

git回退

/*将HEAD移动到commit id对应的提交点*/
git reset <commit id>
/*工作区、暂存区和历史记录区都会被重置commit id提交点*/
git reset --hard <commit id>

git保存修改

git stash                     // 保存当前工作区和暂存区的状态
git stash save "message"  // 执行存储时,添加备注,方便查找
git stash list // 查看所有的stash信息 git stash apply stash@{n} // 恢复指定stash,但不删除该stash记录,如果不指定stash@{n},则默认恢复第一个 git stash drop stash@{n} // 删除指定stash,如果不指定stash@{n},则默认删除第一个 git stash clear // 删除所有stash记录

git推送远程分支

git push                            // 默认推送当前分支
git push -f                         // 强制推送,谨慎操作,可能会覆盖代码
git push -u origin master           // 将本地的master分支推送到origin主机,同时指定origin为默认主机
原文地址:https://www.cnblogs.com/lwcode6/p/11818106.html