赞
踩
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
git branch -vv
git rebase
git push
git config --global core.editor "code --wait"
可以图形化处理冲突、处理rebasegit pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写
git pull origin master:brantest
:将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。git fetch [alias]
告诉 Git 去获取它有你没有的数据;(更新本地的远程分支)
执行 git merge [alias]/[branch]
以将服务器上的任何更新(假设有人这时候推送到服务器了)合并到你的当前分支。
// 获取服务器最新数据
git fetch origin
// 将其合并到当前分支
git merge origin/master
# 方法一
$ git fetch origin master #从远程的origin仓库的master分支下载代码到本地的origin maste
$ git log -p master.. origin/master #比较本地的仓库和远程参考的区别
$ git merge origin/master #把远程下载下来的代码合并到本地仓库,远程的和本地的合并
# 方法二
$ git fetch origin master:temp #从远程的origin仓库的master分支下载到本地并新建一个分支temp
$ git diff temp #比较master分支和temp分支的不同
$ git merge temp #合并temp分支到master分支
$ git branch -d temp #删除temp
https://www.runoob.com/git/git-remote-repo.html
git push [alias] [branch]
//git add
git add . //目录下所有文件
git add readme.md
// 然后可以更新远端,再查看远端和本地的区别
git fetch origin
git diff HEAD FETCH_HEAD
//git commit
git commit -m 'update readme'
//push 远程仓库
git push origin master
//或者 :将本地masterA推送到远端masterB
git push origin masterA:masterB
git log
git rebase -i HEAD~3
最近三个(看自己最近几个
git rebase -i origin/master
rebase 到master (处理完冲突就push就好,有可能要push -f)git push -f origin local:master
之前push 过的commit ,rebase 后需要 push forcegit reset --soft HEAD~1
恢复1个commit回来,然后合成一个commit 提交git remote
-v
参数(verbose),你还可以看到每个别名的实际链接地址。git reset [--soft | --mixed | --hard] [HEAD]
回退版本
$ git add --all # 当前项目下的所有更改
$ git add . # 当前目录下的所有更改
$ git add xx/xx.py xx/xx2.py # 添加某几个文件
第三步:git commit,变为已提交状态
git commit -m"<这里写commit的描述>"
git commit --amend -m #使用一次新的commit,替代上一次提交
第四步:git push,变为已推送状态
$ git push -u origin master # 第一次需要关联上
$ git push # 之后再推送就不用指明应该推送的远程分支了
$ git branch # 可以查看本地仓库的分支
$ git diff # 列出所有的修改
$ git diff xx/xx.py xx/xx2.py # 列出某(几)个文件的修改
Git Reference简写为refs
Reference Specification简称refspec
master
origin/master
v1.0.1
一些Git保留使用的特殊refs:
HEAD
,指向当前本地分支的当前commit状态FETCH_HEAD
,指向当前本地分支在最近一次fetch操作时得到的commit状态ORIG_HEAD
,指向任何merge或rebase之前的刚刚检出时的commit状态git branch //查看本地所有分支 git branch -r //查看远程所有分支 git branch -a //查看本地和远程的所有分支 git branch <branchname> //新建分支 git branch -d <branchname> //删除本地分支 git branch -d -r <branchname> //删除远程分支,删除后还需推送到服务器 git push origin:<branchname> //删除后推送至服务器 git branch -m <oldbranch> <newbranch> //重命名本地分支 git branch -vv // 查看本地分支关联(跟踪)的远程分支之间的对应关系 git branch --set-upstream-to=origin/master-remote master-local //将本地分支和远端分支建立关联 or 建立新的连接
git checkout <branch、commit、tag>
切换到对应分支、commit、tag
detached HEAD
状态,这时候tag 相当于快照,无法修改代码。git checkout -b branch_name tag_name
根据tag 创建新分支并立即切换到该分支下//每次提交的简略统计信息
git log --stat
git tag -l | xargs git tag -d
#删除所有本地分支
git fetch origin --prune
#从远程拉取所有信息
git ls-remote --tags origin
#查询远程tags的命令如下:
tag常用git命令:
git tag
#列出所有tag
git tag -l v1.*
#列出符合条件的tag(筛选作用)git tag
#创建轻量tag(无-m标注信息)git tag -a -m ‘first version’
#创建含标注tag
git tag -a f1bb97a(commit id)
#为之前提交打taggit push origin --tags
#推送所有本地tag到远程git push origin
#推送指定本地tag到远程git tag -d
#删除本地指定taggit push origin :refs/tags/
#删除远程指定taggit fetch origin
#拉取远程指定taggit show
#显示指定tag详细信息git diff > ***.patch
生成patchgit apply *.patch
打patch
git apply -R *.patch
回退patch经常一起用
git status
git stash
将新的贮藏推送到栈上git stash pop
重新应用 & 移除
git stash apply
重新应用git stash drop
移除git stash list
git status -s
git reset HEAD^ main.cc
回退 main.cc文件的版本到上一个版本git reset HEAD^
回退所有内容到上一个版本git reset HEAD^3
回退所有内容到上三个版本
--mixed
重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。(即,现在改的,之前commit 的都到暂存区)--soft
修改版本库,保留暂存区,保留工作区(即,现在改的不变,之前commit 的都到staged)--hard
参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
git cherry-pick <commit id>
git clone <source> <dir>
拷贝source 到 dir, dir是不存在的目录,拷贝时自动创建的。Using depot_tools
https://keyou.github.io/blog/2017/11/02/gclient/
gclient sync
该命令用来同步solution
DEPS
文件,记录了依赖url 等。Hooks
: gclient中的术语,当gclient拉完代码之后执行的额外脚本;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。