Git repo操作基本命令
2017-06-01 16:25
316 查看
http://blog.csdn.net/YanJiangbo/article/details/25738737
http://www.liaoxuefeng.com/wiki/
http://blog.csdn.net/sunweizhong1024/article/details/8055372
分支开发原则:
如果本地dev分支有修改,则需要先切换到master分支,把本地分支的修改merge回master(Git
merge dev),然后在master上把合并后的内容push到master上;然后再切换回本地分支,再把master的内容merge回分支,然后就继续在分支开发。
查看分支:
创建分支:
切换分支:
创建+切换分支:
合并某分支到当前分支:
删除分支:
命令
git tag <name> <commit id>;
命令
用
命令
命令
命令
命令
// 显示本地、服务器所有分支
git branch -a
// 显示本地分支和服务器分支的映射关系
git branch -vv
// 切换分支(和创建分支就差一个-b参数)
git checkout {{branch_name}}
git checkout master //取出master版本的head。
git checkout tag_name //在当前分支上 取出
tag_name 的版本
git checkout master file_name //放弃当前对文件file_name的修改
git checkout commit_id file_name //取文件file_name的
在commit_id是的版本。commit_id为 git commit 时的sha值。
git checkout -b dev/1.5.4 origin/dev/1.5.4
从远程dev/1.5.4分支取得到本地分支/dev/1.5.4
$ git checkout -- hello.rb
就是让这个文件回到最近一次
没有
$ git checkout .
这条命令把 当前目录所有修改的文件 从HEAD中签出并且把它恢复成未修改时的样子.
注意:在使用git checkout 时,如果其对应的文件被修改过,那么该修改会被覆盖掉。
当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令
查看远程库信息,使用
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用
在本地创建和远程分支对应的分支,使用
建立本地分支和远程分支的关联,使用
从远程抓取分支,使用
// 创建新分支,新分支的代码来自于当前分支
git checkout -b [分支名]
// push本地分支代码到远端服务器,如果远端服务器没有该分支,将会自动创建;
git push origin [远端分支名]
// pull远端分支代码到本地当前分支(建议使用)
git pull origin master
如果只想用git pull,可能需要建立track关系,则使用
git branch --set-upstream-to=origin/<远端branch_name> <本地branch_name>
输出结果:Branch h5_dev set up to track remote branch h5_dev from origin.
// 合并本地master分支到当前分支,比如当前处于dev分支,则把master上的代码merge到dev分支上
git merge master
// 合并远程master分支到当前分支
git merge origin/master
// 删除本地分支
git checkout {{another_branch}}
git branch -d {{local_branch_name}}
//删除远程分支
git push origin --delete {{branch_name}}
常用命令:
git config --global user.name
git config --global color.status auto
git config --global color.diff auto
git remote -v// 查看远程分支的git路径
git clone git@192.168.53.123/tv.git
git status
// 查看当前版本的状态(是否修改)
git add xyz
// 添加当前修改的文件到暂存区 or 跟踪新文件(git add .把所有修改的文件add在暂存区)
git commit -m '{{update_msg}}' //提交更改,并加上注释,会生成commit ID
git rm xxx
// 从当前跟踪列表移除文件,并完全删除
git rm -cached xxx// 仅在暂存区删除,保留文件在当前目录,不再跟踪
git mv old_name new_name// 重命名文件
在Git中,用
git log //可以查看提交历史,以便确定要回退到哪个版本。
git log -n //显示n条记录
git log --stat //显示log文件更改详细信息
git show b4f44fe //显示log文件内容更改详细信息
git diff //显示工作目录与上次提交时之间的所有差别
强制回滚命令:
git reset --hard e1da2c37bdaf3df52b9cf105ec7a7bd83f488bc1(上一次提交的号) (commit Id 前几位就行)
把远程分支拉倒本地,并建立关联关系track:
git checkout --track origin/jiangbo_dev
Branch jiangbo_dev set up to track remote branch jiangbo_dev from origin.
Switched to a new branch 'jiangbo_dev'
Repo管理:
Repo实现管理多个git库,一般是多个项目共用一个主分支,而针对项目共用主分支的代码都可以在overlay目录里开发、维护(overlay目录所在远程分支为对应项目的分支,而不是当前共用的主分支);然后提交到对应的项目代码分支;
1.Repo 相关脚本下载操作,相关匹配完成后;下拉Repo管理的项目代码:repo init -u gitserver:manifests.git
-m xxx.xml (xxx.xml文件决定初始化的项目)-->repo sync--->创建xxx项目对应的分支:repo start xxx --all
(--all意为将所有模块都归为当前xxx分支下)
2. 查看当前项目代码所在的分支:repo branch;repo
forall -c -p "git branch -vv"
3.查看当前项目相应目录代码所在的分支情况(可能共用主分支或者在自己的分支),如查看framework/base下的代码所在分支情况:执行 cd framework/base
进入base目录-->执行git branch -a查看;如查看package/apps/Music系统应用模块所在的分支情况: 执行cd package/apps/Music--->执行git branch -a;
4.删除不用的本地分支:“repo
abandon 分支名” (同“git branch -d 分支名”)
5.自动查找项目所在的分支(在没执行repo start xxx --all的情况下),然后进行创建切换:repo forall -c git checkout
-b xxx 项目对应的远程分支名(最好是本地分支和远程分支同名,除主分支外)
6.Repo实现切换分支:执行cd .repo/manifests--->执行ls查看项目对应的xxx.xml文件--->执行cd -回到主目录--->执行repo
sync同步更新代码--->执行”repo start xxx(本地分支名) --all“创建相应的本地分支(或者执行"repo forall -c -p git checkout 本地分支 远程分支"指令);
repo forall -c "git checkout master"
repo forall -c "git clean -df"
repo forall -c "git pull"
7.更新代码
repo forall -c "git reset --hard HEAD && git checkout 本地分支 && git pull 远程分支 本地分支"
http://blog.csdn.net/YanJiangbo/article/details/25738737
http://www.liaoxuefeng.com/wiki/
http://blog.csdn.net/sunweizhong1024/article/details/8055372
分支开发原则:
如果本地dev分支有修改,则需要先切换到master分支,把本地分支的修改merge回master(Git
merge dev),然后在master上把合并后的内容push到master上;然后再切换回本地分支,再把master的内容merge回分支,然后就继续在分支开发。
查看分支:
git branch
创建分支:
git branch <name>
切换分支:
git checkout <name>
创建+切换分支:
git checkout -b <name>
合并某分支到当前分支:
git merge <name>
删除分支:
git branch -d <name>
命令
git tag <name>用于新建一个标签,默认为
HEAD,也可以指定一个commit id
git tag <name> <commit id>;
git tag -a <tagname> -m "blablabla..."可以指定标签信息;
git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;
命令
git tag可以查看所有标签。
用
git show <tagname>查看标签信息
命令
git push origin <tagname>可以推送一个本地标签;
命令
git push origin --tags可以推送全部未推送过的本地标签;
命令
git tag -d <tagname>可以删除一个本地标签;
命令
git push origin :refs/tags/<tagname>可以删除一个远程标签。
// 显示本地、服务器所有分支
git branch -a
// 显示本地分支和服务器分支的映射关系
git branch -vv
// 切换分支(和创建分支就差一个-b参数)
git checkout {{branch_name}}
git checkout master //取出master版本的head。
git checkout tag_name //在当前分支上 取出
tag_name 的版本
git checkout master file_name //放弃当前对文件file_name的修改
git checkout commit_id file_name //取文件file_name的
在commit_id是的版本。commit_id为 git commit 时的sha值。
git checkout -b dev/1.5.4 origin/dev/1.5.4
从远程dev/1.5.4分支取得到本地分支/dev/1.5.4
$ git checkout -- hello.rb
就是让这个文件回到最近一次
git commit或
git add时的状态。
没有
--,就变成了“切换到另一个分支”的命令
$ git checkout .
这条命令把 当前目录所有修改的文件 从HEAD中签出并且把它恢复成未修改时的样子.
注意:在使用git checkout 时,如果其对应的文件被修改过,那么该修改会被覆盖掉。
当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
git checkout -- file。
当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令
git reset HEAD file
查看远程库信息,使用
git remote -v;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用
git push origin branch-name,如果推送失败,先用
git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用
git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用
git branch --set-upstream branch-name origin/branch-name;
从远程抓取分支,使用
git pull,如果有冲突,要先处理冲突
// 创建新分支,新分支的代码来自于当前分支
git checkout -b [分支名]
// push本地分支代码到远端服务器,如果远端服务器没有该分支,将会自动创建;
git push origin [远端分支名]
// pull远端分支代码到本地当前分支(建议使用)
git pull origin master
如果只想用git pull,可能需要建立track关系,则使用
git branch --set-upstream-to=origin/<远端branch_name> <本地branch_name>
输出结果:Branch h5_dev set up to track remote branch h5_dev from origin.
// 合并本地master分支到当前分支,比如当前处于dev分支,则把master上的代码merge到dev分支上
git merge master
// 合并远程master分支到当前分支
git merge origin/master
// 删除本地分支
git checkout {{another_branch}}
git branch -d {{local_branch_name}}
//删除远程分支
git push origin --delete {{branch_name}}
# 假设本地有两个分支: master和dev, 使用dev进行本地开发 # Step1. dev.commit git status # 当前分支,修改的文件 git diff # 具体的修改 git commit -m "{COMMIT_MESSAGE}" . # 提交 # Step2. master.update.merge-dev git checkout master # 切换到master分支 git pull origin master:master # 更新master git merge dev # 合并dev分支的修改 git push origin master:master # 提交代码到远程Git库 # Step3. dev.update git pull origin master:dev # 更新dev git checkout dev # 切换回dev, 以便下一步的开发
常用命令:
git config --global user.name
git config --global color.status auto
git config --global color.diff auto
git remote -v// 查看远程分支的git路径
git clone git@192.168.53.123/tv.git
git status
// 查看当前版本的状态(是否修改)
git add xyz
// 添加当前修改的文件到暂存区 or 跟踪新文件(git add .把所有修改的文件add在暂存区)
git commit -m '{{update_msg}}' //提交更改,并加上注释,会生成commit ID
git rm xxx
// 从当前跟踪列表移除文件,并完全删除
git rm -cached xxx// 仅在暂存区删除,保留文件在当前目录,不再跟踪
git mv old_name new_name// 重命名文件
在Git中,用
HEAD表示当前版本,上一个版本就是
HEAD^,上上一个版本就是
HEAD^^,当然往上100个版本写100个
^比较容易数不过来,所以写成
HEAD~100
git log //可以查看提交历史,以便确定要回退到哪个版本。
git log -n //显示n条记录
git reflog查看命令历史,以便确定要回到未来的哪个版本。
git log --stat //显示log文件更改详细信息
git show b4f44fe //显示log文件内容更改详细信息
git diff //显示工作目录与上次提交时之间的所有差别
强制回滚命令:
git reset --hard e1da2c37bdaf3df52b9cf105ec7a7bd83f488bc1(上一次提交的号) (commit Id 前几位就行)
把远程分支拉倒本地,并建立关联关系track:
git checkout --track origin/jiangbo_dev
Branch jiangbo_dev set up to track remote branch jiangbo_dev from origin.
Switched to a new branch 'jiangbo_dev'
Repo管理:
Repo实现管理多个git库,一般是多个项目共用一个主分支,而针对项目共用主分支的代码都可以在overlay目录里开发、维护(overlay目录所在远程分支为对应项目的分支,而不是当前共用的主分支);然后提交到对应的项目代码分支;
1.Repo 相关脚本下载操作,相关匹配完成后;下拉Repo管理的项目代码:repo init -u gitserver:manifests.git
-m xxx.xml (xxx.xml文件决定初始化的项目)-->repo sync--->创建xxx项目对应的分支:repo start xxx --all
(--all意为将所有模块都归为当前xxx分支下)
2. 查看当前项目代码所在的分支:repo branch;repo
forall -c -p "git branch -vv"
3.查看当前项目相应目录代码所在的分支情况(可能共用主分支或者在自己的分支),如查看framework/base下的代码所在分支情况:执行 cd framework/base
进入base目录-->执行git branch -a查看;如查看package/apps/Music系统应用模块所在的分支情况: 执行cd package/apps/Music--->执行git branch -a;
4.删除不用的本地分支:“repo
abandon 分支名” (同“git branch -d 分支名”)
5.自动查找项目所在的分支(在没执行repo start xxx --all的情况下),然后进行创建切换:repo forall -c git checkout
-b xxx 项目对应的远程分支名(最好是本地分支和远程分支同名,除主分支外)
6.Repo实现切换分支:执行cd .repo/manifests--->执行ls查看项目对应的xxx.xml文件--->执行cd -回到主目录--->执行repo
sync同步更新代码--->执行”repo start xxx(本地分支名) --all“创建相应的本地分支(或者执行"repo forall -c -p git checkout 本地分支 远程分支"指令);
repo forall -c "git checkout master"
repo forall -c "git clean -df"
repo forall -c "git pull"
7.更新代码
repo forall -c "git reset --hard HEAD && git checkout 本地分支 && git pull 远程分支 本地分支"
相关文章推荐
- git config命令使用第一篇——介绍,基本操作,增删改查
- git config命令使用第一篇——介绍,基本操作,增删改查
- GIT基本操作命令
- Git基本操作--命令,真的只有最基本的操作
- Git基本操作命令2
- Git操作流程,基本命令演示
- Git操作流程,基本命令演示
- git基本操作命令
- git常用命令-最基本操作
- git(2)----git的基本操作常用命令
- Git操作基本命令
- git的基本使用命令操作
- git config命令使用第一篇——介绍,基本操作,增删改查
- MAC 基本命令操作git
- Git操作流程,基本命令演示
- Git远程基本操作命令
- Git操作基本命令
- Git操作的基本命令
- Git常用命令——基本操作
- Git基本操作命令