Git使用经验总结

1. Git如何获得两个版本间所有变更的文件列表

用“git log”或者“git log|grep <name>”查到关注的版本的哈希值,然后

git diff dd1b3f4d24e9bc8813e0ddb68396684aa2cd684d 83ca581804524f0d271c82779b102bb20cca32ce --stat

或者

git diff dd1b3 83ca5 --stat

前4~6位就可区分

2. 典型的git checkout/checkin操作

git clone ssh://192.168.27.12:29418/8939/amss_oem/modem_proc.git -b develop-bp-master-37

git checkout -b tangjian_bug42272

git add <file>

git commit -m "bug 42272, provide different header file according to different project" files

git push ssh://[email protected]:29418/8939/amss_oem/modem_proc.git HEAD:refs/for/develop-bp-master-37

一般除非文件很多,不主张用

git add .

否则很多中间编译产生的文件也add到cache中了。

对于git push和git pull,可以写个脚本。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
import argparse
class InputError(Exception):
    def __init__(self, value):
        self.value = "Build Variant Input Error: " + value
    def __str__(self):
        return repr(self.value)
prompt = "please give input like $0 -a pull -m bp -s modem_proc -n 40 "
parser = argparse.ArgumentParser()
parser.add_argument("-m", "--module")
parser.add_argument("-s", "--submodule")
parser.add_argument("-n", "--no")
parser.add_argument("-b", "--branch")
parser.add_argument("-a", "--action")
args = parser.parse_args()
if args.module == None or args.submodule == None or args.no == None or args.action == None:
    raise InputError(prompt)
br = "develop-" + args.module + "-master-" + args.no
folder="8939"
if args.module == "ap":
    folder += "/platform"
else:
    folder += "/amss_oem"
cmd = "git %s ssh://192.168.27.12:29418/%s/%s.git HEAD:refs/for/%s"%(args.action, folder, args.submodule, br)
print cmd
ret = os.system(cmd)

3. git clean -df, 清除不在库中的文件

时间: 2025-01-05 03:54:19

Git使用经验总结的相关文章

git 使用经验

1, 切换分支: git  checkout  <分支名字>: git checkout clhandle 2,查看有哪些分支: git  branch ; 查看远端有哪些分支: git branch -r 3,拉取远端分支:(本地没有该分支的时候???) git fetch origin cl_handle: clhandle; 注意: fetch  将远端拉到本地 但是 不合并: origin 表示远端, cl_handle 是远端的分支名 clhandle 如果本地没有这个分支 就会创建

GIT使用经验

不要用git pull,用git fetch和git merge代替它. git pull的问题是它把过程的细节都隐藏了起来,以至于你不用去了解git中各种类型分支的区别和使用方法.当然,多数时候这是没问题的,但一旦代码有问题,你很难找到出错的地方.看起来git pull的用法会使你吃惊,简单看一下git的使用文档应该就能说服你. 将下载(fetch)和合并(merge)放到一个命令里的另外一个弊端是,你的本地工作目录在未经确认的情况下就会被远程分支更新.当然,除非你关闭所有的安全选项,否则gi

git使用经验(一)

在使用Git Push代码到数据仓库时,提示如下错误: [remote rejected] master -> master (branch is currently checked out) 错误原型 remote: error: refusing to update checked out branch: refs/heads/master remote: error: By default, updating the current branch in a non-bare reposit

Git详解之三 Git分支

相关文档 — 更多 Git 基础培训.ppt GIT 使用经验.ppt GIT 介绍.pptx GIT 分支管理是一门艺术.docx Eclipse上GIT插件EGIT使用手册.docx git/github学习笔记.doc git 版本控制系统.docx Git开发管理之道.pdf Git内部培训资料.pptx Git权威指南-第5篇-第32章-Gerrit.pdf Gitolite 构建 Git 服务器.pdf 版本控制之道 - 使用Git.pdf Git使用指南(中文).pdf Git-C

贯穿Git使用

>本文总结于自己在工作中对Git使用经验的总结,重点是使用.对于Git相关理论网上很多,可与SVN作对比由此深入,这里简单指出最重要的几点,有兴趣可深入. <p>git checkout -b Lxf_Local_IPPM origin/16B_Featcher_IPPM<p>git pull -r origin 16B_Featcher_IPPM<p>git clean -fdx<p>git checkout 16B_Featcher_IPPM<

git 使用那些事儿

git使用经验总结 一.克隆项目 1.通过GitLab查询 项目  的地址 2.克隆项目(gitAddr需从gitLab中查得) git clone gitAddr 3.切分支 切到dev分支 git checkout dev 4.转换为eclipse项目 mvn eclipse:eclipse 5.导入到eclipse中 二.提交流程 1. 拉代码(dev是分支名称.本命令,在分支目录下执行) git pull origin dev begin if [正常] 2. 提交所有变化 到 暂存区

Git内部原理探索

目录 前言 Git分区 .git版本库里的文件/目录是干什么的 Git是如何存储文件信息的 当我们执行git add.git commit时,Git背后做了什么 Git分支的本质是什么 HEAD引用 参考 @ 前言 洞悉技术的本质,可以让我们在层出不穷的框架面前仍能泰然处之.用了那么久的 Git,不懂点内部原理,那可不行!懂点原理可以让我们遇到问题的时候能够更好更快的理清解决问题的思路.博客原文 要真正读懂本文可能需要以下基础: 有 Git 使用经验 对 Git 的三个分区有所了解 熟悉常用的

指导思想

告诉我,我可能转眼就忘:较我,我会牢记在心:参与其中,我会心领神会.--本杰明·富兰克林 不论读多少书,学习知识的最佳方式是将其应用于实践. 比如:阅读了<git使用经验(已读70%)>,仅需要阅读其中的一部分知识,其他的部分需要结合实践:因为是工作的需要,不能将大部分时间都用在学习上,而忽略了业务水平的提升. 教训:把工作做得尽善尽美,就得学会找到所有可能失败的原因:如果规避了大部分可能失败的行为和局面,那么你成功的概率将大大增加.比如在工作中,学会去在"事前"验证可能的

Eclipse的Git工具EGit的使用经验

由于项目需要,简单看了一下这个工具的使用.发现在最新版的Eclipse Luna中似乎已经集成这个工具了,对于旧一点版本的Eclipse,可以在:http://www.eclipse.org/egit/ 查看安装方法. 安装好并重启Eclipse之后,我们可以切换到Git视图,在这里可以将我们已经在公开或私有GIt网站上的Repository Clone到本地.基本步骤都很简单,到了"Local Destination"这一步的时候,有些设置需要注意,假设我们只使用如下图所示的默认设置