Welcome 微信登录

首页 / 操作系统 / Linux / Git使用基础教程

下面所写的其实是写给公司内部的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 -m "commit message"
<!--more-->

提交到远程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 -m "commit message"
恢复代码放弃本地修改(废弃本地所有未提交的文件,和远程保持一致)
  1. git reset --hard origin/master
恢复一个提交
  1. git revert [COMMIT_ID]
恢复merge
  1. git revert -m 1[MERGE_COMMIT_ID]
恢复到指定版本
  1. git reset --hard [COMMIT_ID]
删除分支

删除本地分支

  1. git branch -d [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---B <---develop
  2. --C--G---J---P---Q <---master
如上例,需要先确认好J这次错误提交点以及其之前、之后提交点的hash值,并确保当前HEAD处于Q上,接着执行:
  1. git rebase -i -p --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 -a -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 使用教程图文详解  http://www.linuxidc.com/Linux/2014-09/106230.htm Git 标签管理详解 http://www.linuxidc.com/Linux/2014-09/106231.htm Git 分支管理详解 http://www.linuxidc.com/Linux/2014-09/106232.htm Git 远程仓库详解 http://www.linuxidc.com/Linux/2014-09/106233.htm Git 本地仓库(Repository)详解 http://www.linuxidc.com/Linux/2014-09/106234.htm Git 服务器搭建与客户端安装  http://www.linuxidc.com/Linux/2014-05/101830.htm Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm 分享实用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm Ubuntu下Git服务器的搭建与使用指南  http://www.linuxidc.com/Linux/2015-07/120617.htmGit 的详细介绍:请点这里
Git 的下载地址:请点这里本文永久更新链接地址