Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7171116
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: 项目管理

2015-09-15 10:15:15

Git使用基础教程

[日期:2015-09-15] 来源:Linux社区  作者:Linux [字体:  ]

下面所写的其实是写给公司内部的Git使用基础教程,我在这里也记录下。

修改Git配置

windows操作系统换行配置

  1. git config --global core.autocrlf input

用户名、邮箱配置

  1. git config user.name yourname --local
  2. git config user.email yourname@tudou.com --local

克隆v3代码库

  1. git clone git@gitlab.intra.tudou.com:static/v3.git

查看分支

列出本地所有的分支

  1. git branch

列出远程所有的分支

  1. git branch -r

创建分支

基于本地分支创建

  1. git branch [BRANCH_NAME]
  2. git push origin [BRANCH_NAME]

基于远程分支创建

  1. git branch [BRANCH_NAME] origin/master

本地分支与远程分支绑定

绑定后操作就能省略origin [branch],使用起来更加方便高效,当然如果有多个远程需要操作就不能省略了

  1. git push -u origin [branch]

切换分支

切换到本地分支,如果本地分支不存在自动寻找远程分支

  1. git checkout [BRANCH_NAME]

更新分支

更新master

  1. git pull --rebase origin master

解决rebase冲突。

  1. git status

# 根据提示打开对应文件,搜索"<<<<<<<"字符,解决冲突后执行

  1. git add -u
  2. git rebase --continue

# 停止pull操作,回pull rebase之前的状态

  1. git rebase --abort

提交代码

提交到本地版本库

  1. git commit -"commit message"


提交到远程master

  1. git push origin master

合并分支

切换到master。

  1. git checkout master

合并分支。

  1. git merge --no-ff [BRANCH_NAME]

解决src目录下的冲突。

  1. https://help.github.com/articles/resolving-a-merge-conflict-from-the-command-line

使用外部工具解决冲突

解决本次合并的所有冲突

  1. git mergetool

解决特定文件的冲突

git mergetool src/js/g.js
重新构建build、dist目录下的所有冲突的文件。

  1. ytpm [PATH]

提交代码。

  1. git add .
  2. git commit -"commit message"

恢复代码

放弃本地修改(废弃本地所有未提交的文件,和远程保持一致)

  1. git reset --hard origin/master

恢复一个提交

  1. git revert [COMMIT_ID]

恢复merge

  1. git revert -1[MERGE_COMMIT_ID]

恢复到指定版本

  1. git reset --hard [COMMIT_ID]

删除分支

删除本地分支

  1. git branch -[BRANCH_NAME]

删除远程分支

  1. git push origin --delete[BRANCH_NAME]

查看变更记录

查看变更历史

  1. git log --decorate --numstat [PATH]

查看某个提交记录

  1. git show --name-only [COMMIT_ID]

对比文件

git默认方式

对比工作区版本和暂存区版本

  1. git diff --[PATH]

对比暂存区版本和版本库版本

  1. git diff --cached --[PATH]

对比工作区版本和版本库版本(HEAD)

  1. git diff HEAD --[PATH]

对比两个提交过的文件

  1. git diff [COMMIT_ID_1][COMMIT_ID_2]--[PATH]

对比两个分支的文件

  1. git diff develop master -- src/js/g.js
  2. git diff develop:src/js/g.js master:src/js/g.js

查看其它分支上的文件

  1. git show master:src/js/g.js

外部比较工具完成比较

比较本次合并的所有修改(只与提交前的记录比较)

  1. git difftool

比较指定文件的历史版本

  1. git difftool [GitHash] HEAD -- src/js/g.js

不小心在develop上进行开发时解决方案

未提交时

  1. git stash
  2. git checkout [BRANCH_NAME]
  3. git stash pop

已提交时

  1. git log -1# 记住COMMIT ID
  2. git reset --hard origin/develop
  3. git checkout [BRANCH_NAME]
  4. git cherry-pick [COMMIT_ID]

不小心将develop或基于develop创建的分支合并到master上时解决方案

  1. A--M---<---develop
  2. \
  3. --C--G---J---P---<---master

如上例,需要先确认好J这次错误提交点以及其之前、之后提交点的hash值,并确保当前HEAD处于Q上,接着执行:

  1. git rebase ----onto P G

执行完后需要手工解决之后每次提交出现的冲突,手工比较解决掉冲突后执行:

git add . // 添加此次冲突修改

  1. git rebase --continue

注意,上面的步骤可能会进行很多次,每次都是上面的方法;手工比较的方法可以参看[外部比较工具][1]的使用方式。

其它
Beyond Compare比较工具配置
在~/.gitconfig文件中加入以下配置,使用的比较工具为Beyond Compare,大家可以自行下载;如果是win用户对应的路径需要相应的修改。

另外,Mac版的 Beyond Compare 4 还需要进行设置让其支持通过命令行的方式调用:点击菜单 -> Install Commond Line Tools...然后输入系统登录密码即可。
[merge]
tool = bcomp
[mergetool]
prompt = false
keepBackup = false
[mergetool "bcomp"]
trustExitCode = true
cmd = "/usr/local/bin/bcomp" "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
[diff]
tool = bcomp
[difftool]
prompt = false
[difftool "bcomp"]
trustExitCode = true
cmd = "/usr/local/bin/bcomp" "$LOCAL" "$REMOTE"

常用git Alias

  1. [alias]
  2. st = status --short--branch
  3. pu = pull --rebase
  4. ca = commit --amend
  5. ci = commit --v
  6. br = branch
  7. bv = branch -vv
  8. co = checkout
  9. cb = checkout -b
  10. df = diff
  11. un = reset --hard HEAD
  12. uh = reset --hard HEAD^
  13. ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]"--decorate --numstat
  14. ld = log --pretty=format:"%C(yellow)%h\\ %C(green)%ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]"--decorate --date=short--graph
  15. ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]"--decorate --date=relative

GitHub 教程系列文章: 

GitHub 使用教程图文详解  

Git 标签管理详解 

Git 分支管理详解 

Git 远程仓库详解 

Git 本地仓库(Repository)详解 

Git 服务器搭建与客户端安装  

Git 概述 

分享实用的GitHub 使用教程 

Ubuntu下Git服务器的搭建与使用指南  

Git 的详细介绍请点这里
Git 的下载地址请点这里

本文永久更新链接地址

阅读(659) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~