代码管理工具 Git

以下是自己总结的git 使用,有些先人写得不错,就直接贴链接了,后续会陆续补充;


〇、一种很好地分支管理方法:

http://www.ruanyifeng.com/blog/2012/07/git.html


1、申请账号,登录web git,填写注册邮箱等信息;等待管理员通过;

2、安装git客户端(如windows下的git bash),上传公钥:执行 ssh-keygen.exe生成 .ssh/id_rsa.pub,将内容拷贝到web git的SSH Public Keys;

3、配置
    3.1 本地用户名和邮箱:git config --global user.name gitname, git config --global user.mail  gitname@example.com
    3.2 默认编辑器 git config --global core.editor "vim" 或者 export GIT_EDITOR=vim
     3.3 保存密码,以避免每次输入: git config --global credential.helper store
    3.4 高亮git config --global color.ui true 
     3.5 配置文件位置及其作用域 http://www.cnblogs.com/wanqieddy/archive/2012/08/03/2621027.html
    3.6  .gitignore 提交时忽略的文件列表

4、克隆代码:git clone git@git.internal. company.com:project.git ,clone的地址从git的web页面获取; 
    clone子模块:git submodule --recursive --init      git submodule update [path]

5、代码操作:
    5.1 分支操作
        在远端qa分支基础上创建分支:git checkout -b dev.test origin/qa,若无法创建分支,可能是没有权限
         基于当前所在分支, 创建分支:git branch name
          创建+切换分支:git checkout –b name
        合并某分支到当前分支:git merge name
        删除本地分支:git branch –D name
        删除github分支:git push origin --delete dev.test
        切换分支:git checkout tagname
         本地分支回退
         版本表示:HEAD 表示当前版本;HEAD^上个版本;HEAD^上上个版本;HEAD~100之前的第100个版本;
          查看历史命令,以便确定跳跃到未来哪个版本: git reflog
          本地所有修改的,没有的提交的,都返回到原来的状态: git checkout 
          返回到某个节点,不保留修改: git reset --hard commit_id
        返回到某个节点,保留修改:git reset --soft  commit_id
        把所有没有提交的修改暂存到stash里面,可用git stash pop恢复:git stash
        修改了某文件,但是尚未 add,取消修改:git checkout -- README.md, 若已经add,则 git reset HEAD -- README.md取消暂存的文件名,然后执行上一条命令取消修改
        删除某个已经push的commit: 1、rebase(drop)  或者  2、 http://blog.csdn.net/molaifeng/article/details/52671810
        //fetch的使用方法: git fetch gerrit refs/changes/39/1739/1
     5.2手动解决冲突:
          生成patch:git diff
          修改patch文件: patch文件中的 <<<<<<<<和>>>>>>>指出了冲突,对比两个冲突,将他们修改成你期望的那个,删掉<<<<<和>>>>>;
          尝试 git apply直到没有冲突
     5.3 tag操作:
          创建tag:git tag -a "tag name" -m "tag description"
          推送所有本地tag:git push origin --tag
          推送指定tag,若tag和分支名字相同,则推送的是分支:git push origin [tag name]
          删除远程tag:git push origin --delete tag tag-name 
    
6、获取最新短commit号git rev-parse --short HEAD 
     git  describe 显示离当前提交最近的tag,如果符合条件的tag,即最新的tag,指向最新提交,则只显示tag名字,否则显示后缀以描述该tag,后缀格式 从大tag到现在的commit个数 + 最新的commit id,如
0.11.0-3-g2985355 表示从tag 0.11.0 到最新的commit有3次提交,最新commit id 前7位是 2985355,  g表示git
     git describe --tag [<commit-ish>] 从指定commit中找到找到最近的tag 
               --dirty[=<mark>]描述工作树,如果工作树是dirty就将[mark](-ditry默认值)附在描述之后

 7、日志操作:   
          查看某个修改是谁提交的: git blame file_path | grep "key words"
          查看commit信息:git show 7c95a0f6ede86d7fdf964bfa8963c4961472dba9
          查看某人的提交日志:git log --author=username
          查看某人的修改: git log --oneline --since 2016-05-30 --author=username
          git show --stat branchname
          查看某个commit日志及对应修改了哪些文件 git log -2 --stat
          最近一次提交的细节: git log -1 -p
          查看文件修改历史git log -p <filename>

8、比较不同:
    git diff commit:filename commit2:filename #查看某一个文件不同版本的差异;
     git diff --name-status HEAD~2 HEAD~3文件列表


10、git库迁移:
     更新git remote: git remote set-url origin git@newgit.op.ksyun.com :ebs/kdfs.git
    将本地分支重新推送到origin,例如     git push origin dev.test
   
11、 git error:
     $ git pull
          Updating e2d796f..cffa116
          Unlink of file 'path/file.c' failed. Should I try again? (y/n)
          文件正在被其他应用使用,关掉即可


http://blog.csdn.net/wei_gw2012/article/details/54347504

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值