git remote - 管理远程分支api
#只显示远程仓库名 git remote #使用-v 选项,能够看到远程仓库的网址 git remote -v #添加主机名,能够查看远程仓库详细信息 git remote show origin #用于添加远程仓库 git remote add <仓库名> <网址> #修改仓库名 git remote rename <原仓库名> <新仓库名> #删除仓库 git remote rm <主机名>
示例bash
git pull/fetch - 拉取远程仓库最新改动app
#取回远程仓库的全部更新 git fetch <远程仓库> #取回指定仓库的指定分支 git fetch <远程仓库> <分支名> #拉取本分支最新内容,和fetch区别是拉取并自动合并,建议使用 git pull
git branch - 分支操做fetch
#以当前分支为根基,建立新的分支,不会切换到新的分支 git branch <新分支> #以当前分支为根基,建立新分支并切换到新分支 git checkout -b <新分支> #查看远程分支 git branch -r #查看全部分支 * 表明当前所在分支 git branch -a #若是删除分支没有合并到当前分支,删除会失败 #能够用git branch --merged和git branch --no-merged查看 git branch -d <分支名> #强制删除 git branch -D <分支名> #删除远程分支 git push origin --delete <分支>
合并url
合并有两个命令可使用,分别是git merge和git rebasespa
git merge - 合并指针
#把分支合并到当前分支 git merge <被合并的分支> #合并冲突解决 git add <冲突的文件>
git rebase - 变基日志
#把当前分支的根基变为新根基 git rebase <新基> #冲突 git rebase --continue #取出 client 分支,找出处于 client 分支和 server 分支的共同祖先以后的修改,然 后把它们在 master 分支上重演一遍 git rebase --onto master server client
示例code
比较
这两个命令都是把分支合并到当前分支,只不过一个是合并,一个是首先变基再合并,变基使的提交历史更加整洁。可是通常推荐使用git merge便可,防止带来没必要要的麻烦。
git merge
是三方合并,以下例C二、C三、C4合并
git rebase是变换根基,就是把C2->C4的变动,在C3在应用一次,把C4的根基变为C3,而后移动Master指针便可,因此更快,可是不要对在你的仓库外有副本的分支执行变基。
git diff - 查看变动
# 工做区和暂存区的差别 git diff <文件名> #暂存区和本地仓库的差别 git diff --cached <文件名> #工做区和本地仓库的差别 git diff <commit> <文件名> #比较任意两次提交的差别 git diff <commit> <commit>
示例
# 比较a.txt本地仓库和工做目录的差别 git diff HEAD a.txt # 比较HEAD和HEAD~2的提交差别 git diff HEAD HEAD~2
git log - 查看提交历史
# -p,用来显示每次提交的内容差别 # 加上 -2 ,只显示最近的两次提交 git log -p -2 #选项在每次提交的下面列出额全部被修改过的文件、有多少文件被修改了以及被修改 过的文件的哪些行被移除或是添加了 git log --stat #自定义输出格式 git log --pretty=format git log --pretty=format:"%h - %an, %ar : %s" #输出的SHA-1值缩写,并在一行输出 git log --abbrev-commit --oneline #根据提交者名字查找 git log --author=huan.liu10 #根据日期过滤 git log --after="2014-7-1" --before="2014-7-4" #根据提交信息过滤 git log --grep=删除 #根据文件过滤,只显示针对某个文件改动的记录 git log -- a.txt b.txt #根据内容搜索,查看某个内容的变更记录 git log -Saaaaaaaaaaa --oneline
引用日志,能够查看全部提交历史,包括删除的,能够用来恢复
git reflog
git show - 查看提交详细内容
# 显示HEAD的提交日志 git show HEAD # 显示HEAD上一个版本提交的日志 git show HEAD^
git commit - 提交
#合并上一次提交或者从新编辑上一次提交,只有一次提交记录 git commit --amend
git reset - 恢复/撤销
#撤销commit,从本地仓库到暂存区,不会丢失数据 git reset --soft <commit> #撤销暂存区,从暂存区到工做目录,不会丢失数据 git reset <文件名> #撤销commit,从本地仓库到工做目录,会丢失数据,若是想恢复丢失commit,使用git reflog git reset --hard <commit>
git checkout - 切换分支/撤销修改
#切换分支 git checkout <branch> #使用本地仓库的文件内容覆盖工做目录内容,也就是撤销对文件修改 git checkout -- <文件名>
git stash - 暂存
当不得不切到另一个分支,可是又不想提交时使用
# 暂存工做目录和暂存区 git stash #查看暂存列表 git stash list #不会删除暂存记录 git stash apply --index #会删除暂存记录 git stash pop --index