git使用的一些总结

初始化分支:
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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中可以使用Git的库来进行版本控制操作。引用\[1\]中的代码展示了一些常见的Git操作,比如回滚缓存区文件和回滚版本库文件。可以使用`repo.index.checkout(\['a.txt'\])`来回滚缓存区文件,使用`repo.index.reset(commit='486a9565e07ad291756159dd015eab6acda47e25',head=True)`来回滚版本库文件。 另外,Python中也可以使用第三方库来拉取远程仓库。引用\[2\]中的代码展示了使用`git.Repo.clone_from`来拉取远程代码。可以使用类似的方式来克隆远程仓库到本地。 总结来说,Python中可以使用Git库来进行版本控制操作,包括回滚文件和拉取远程仓库等操作。这样可以方便地管理和控制代码的版本。 #### 引用[.reference_title] - *1* *2* [python操作git](https://blog.csdn.net/m0_37605642/article/details/124515454)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [python - Git的简单使用](https://blog.csdn.net/qq_48391148/article/details/122292425)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值