初始化分支:
repo start master --all //创建新的分支
切换分支
repo forall -c "git checkout -b master"
repo forall -c "git checkout master"
repo forall -c command //对所有项目执行一个命令
repo status //显示状态
repo sync "JellyBean/packages/apps/Hwapps" //用repo更新某个项目的代码,项目列表可到.repo中看到
repo sync
git
查询分支:
repo branch
查看各个分支最后一个提交对象的信息
git branch -v
增加文件:
git add -A //所有文件
查看状态:
repo status //查看repo管理的所有项目的状态,很慢
git status //查看当前文件夹下的状态
提交到本地库:
git commit -m "注释" filename
git commit -m "注释" -a //提交所有修改
提交到远端库:
repo upload
origin 是默认的远程版本库的名字,一般大家都这么用,你也可以取其他名字比如thisIsNotOrigin什么的,在.git/config中有相应的设置
在Git中,HEAD是一个特别的指针,指向你正在工作的本地分支。一般来说当前分支就是master
克隆项目:
git clone git://github.com/schacon/ticgit.git
用TortoiseGit克隆:git@10.85.168.56:apps
查看远程仓库:git remote -v
git remote show origin
添加远程仓库:git remote add [name] [url]
拉取远程仓库:git pull [remoteName] [localBranchName]
git pull origin master //将远程origin仓库代码更新到本地的master分支
推送远程仓库:git push [remoteName] [localBranchName]
git push origin test:master // 提交本地test分支作为远程master分支
查看本地分支:git branch
查看远程分支:git branch -r //红色的代表远程分支
查看所有分支:git branch -a
创建本地分支:git branch [name]
切换分支:git checkout [name]
撤销尚未提交的所有修改
git checkout head .
合并分支:git merge [name] //将name分支与当前分支合并
查看版本:git tag
查看远程版本:git tag -r
查看历史日志
git log
git log -p filename //查看filename的log日志,-p的意思是展开每次的提交差异
git log -p -2 // 只显示最近的两次log
git log --stat //简单的log统计
git log --author=chenzhenming
从远端仓库获取代码到本地,不会自动merge
git fetch
git fetch origin
查看本地仓库的状态
git status
----------------------
第一次在用户Home目录使用git:
1、git config --global user.name "huchanghui"
2、git config --global user.email "huchanghui1@huawei.com"
3、删掉目录 ~/.repoconfig
4、repo init -u git@10.85.168.56:manifest
5、repo sync
----------------------
例子1:从远程仓库获取最新版本到本地
1、git remote -v //查看远程仓库
2、git fetch origin master:temp //从远程origin仓库的master分支下载代码到本地并新建一个分支temp
3、git diff temp //比较本地master分支与temp分支的不同
4、git merge temp //合并temp分支到master分支
5、git branch -d temp 或者 git branch -D temp //删除temp分支
---------------------
例子2:repo sync 出现错误解决方法:error: apps/: apps checkout ......
1、cd apps
2、git log //找到最上面一个commitid
3、git reset --hard 上面的commitid
4、git checkout
5、git fetch --all
6、git reset --hard origin/master
7、git branch
8、repo sync
-----------------------------
将所有代码和.repo目录都删掉后要重新下载代码的操作
1、重新生成.repo目录 repo init -u git@10.85.168.56:manifest
2、下载代码 repo sync
3、在所有git库都新开一个master分支 repo forall -c "git checkout -b master"
-----------------------------
下载最新代码: git pull origin master 或者用下面的
1、git fetch origin master 下载
2、git merge origin/master 合并到当前分支上
-----------------------------
切换分支遇到错误:Your local changes to the following files would be overwritten by checkout
1、git reset --hard //用代码库中的文件完全覆盖本地工作版本,reset是针对版本的
2、git pull
3、git checkout master
------------------------------
版本回退和切换分支
1、git log //查看某个分支的commitid
2、git branch //查看目前处于哪个branch
3、git branch branch_name commitid //根据commitid创建分支branch_name
4、git checkout branch_name //切换到新建的分支
-----------------------------
代码全部先放弃全部本地修改,然后更新为最新
1、repo forall -c "git reset --hard"
1、repo forall -c "git pull origin master"
1、repo forall -c "git checkout master"
------------------------------
代码库上面新开了HOSTING分支,大家可以根据如下方法更新到HOSTING分支:
1.全新下载
repo init -u git@10.85.168.56:manifest -m HOSTING.xml
repo sync
2.在原有代码基础上更新成HOSTING分支的方法:
repo forall -c "git fetch --all && git reset --hard origin/HOSTING"
对HOSTING代码的修改提交时要注意提交的HOSTING分支上,操作方法:
git push origin HEAD:HOSTING
一般在进行HOSTING代码修改前请先执行下面命令,使当前分支跟踪远程HOSTING分支:
git reset --hard origin/HOSTING // 注意观察本地分支的哈希数和哪个远程分支一样
然后就可以正常进行修改提交和pull操作了
对于要提交到主分支和HOSTING分支的代码提交建议按如下操作:
1、新建两个本地分支master、HOSTING
新建并跟踪主分支:
git checkout -b master remotes/origin/master
新建HOSTING跟踪分支:
git checkout -b HOSTING remotes/origin/HOSTING
2、 在master修改提交后记住commit-id
3、 切换到HOSTING分支后使用cherry-pick命令
git cherry-pick commit-id (master分支上的提交id号)
这样在master分支上对应提交被拷贝到了当前分支,然后就可以进行push操作了
----------------------------------
克隆一个特定的远程分支
git init
git remote add -t BRANCH_NAME_HERE -f origin REMOTE_REPO_URL_PATH_HERE
git checkout BRANCH_NAME_HERE
---------------------------------------
以某个远程branch最新的一个snapshot为基础创建一个新的branch
git checkout -b newbranch origin/remote_branch
------------------------------------------
从远程拉取dev分支到本地,并切换到dev分支
git checkout --track origin/dev
------------------
提供一个比较笨的查看当前分支跟踪那个远程分支的方法:
git branch -a -v
-------------------
集采版本分支
新建代码根目录,切换到代码根目录。(已实现ipv6)
repo init -u git@10.85.168.56:manifest -m GDJC.xml
repo sync
在原有代码基础上更新切换到集采版本分支方法:
repo forall -c "git fetch --all && git reset --hard origin/GDJC"
--------------------------------------------------------------------
修改代码流程,以HOSTING分支为例:
1、检查当前分支与跟踪分支
git branch -a -v
2、如果本地没有建master分支,则新建
git checkout -b master remotes/origin/master
如果已有master本地分支但是没有跟踪远程的master分支,则跟踪:
git reset --hard origin/master
3、更新最新代码
git fetch --all
git merge origin/master
4、修改代码并提交
git status
git add 具体文件路径
进行代码修改
git diff
git commit -m "CR/DTS/JIRA:NULL Description: "
git push origin HEAD:master