欢迎来到HugNew-拥抱变化,扫一扫右边二维码关注微信订阅号:Martin说 或 加QQ群:427697041互相交流,Stay hungry, Stay foolish.

十分钟Git快速入门

linux Martin 2943℃ 2评论

 

目录

  •  配置
  •  基础工作流程
  •  新建分支进行工作
  •  删除commit
  •  回退(revert)commit
  •  合并commit
  •  从另一个分支上拷贝一个commit的内容
  •  查看commit历史
  •  查看代码修改情况
  •  解决代码冲突
  •  总结:Git使用原则
  •  关于Window用户

配置

在 $HOME目录下,编辑.gitconfig文件,添加以下内容:


[user]
    name = <Your name> # For example: Martin
    email = <name>@hugnew.com

[alias] 
    lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --
    st = status
    co = checkout
    br = branch
    lol = log --graph --decorate --pretty=oneline --abbrev-commit -n 25
    d = difftool
    cp = cherry-pick

基础工作流程

  • 克隆代码库到本地

git clone git://git.eng.hugnew.com:<repo-name>
  • 添加新文件以及修改过需要提交的文件

git add <file>
  • 提交代码到本地代码库

git commit
  • 从服务器下载最新代码并更新本地代码库

git fetch origin
git rebase origin/master
  • 加本地代码库的代码上传到服务器

git push origin HEAD:master

新建分支进行工作

  • 显示所有分支

git branch
  • 创建分支并切换到新分支上

git co -b <branch-name>
  • 同基本流程一样的添加修改文件本提交到本地代码库

git add <file>
git commit
  • 切换回主分支,并跟服务器同步

git co master
git fetch origin
git rebase origin/master
  • 切换到新分支,并跟主分支进行同步

git co <branch-name>
git rebase master
  • 将代码提交到服务器的主分支

git push origin HEAD:master

删除commit

假设当前commit的SHA1是abcd,接下来又做了两次commit:


git commit -a 
git commit -a

这时想删除最新的两个commit,从而退回到abcd,可以使用这个命令:


git reset --hard abcd

回退(revert)commit

假设当前commit的SHA1是abcd,接下来又做了两次commit:


git commit -a
git commit -a

这时希望把commit abcd所做的代码修改回退掉,而保留后面的两个commit,可以使用这个命令:


git revert abcd

合并commit

如果已经在本地库同进行了多次提交:


git commit -a
git commit -a
git commit -a

这时想把这几个commit合并成一个commit再提交到服务器,可以这样做:


# 假设当前在另一个分支上
git rebase -i master

# 如果当前就在master分支上
git rebase -i origin/master

在打开的编辑窗口里,把第一个p保留,后面的p都修改成s。

从另一个分支上拷贝一个commit的内容

首先来到源commit所在的分支:


git co b1

列出commit历史,并记录下要拷贝的那个commit的SHA1:


git lol

回到目标分支,然后用chery -pick命令来进行拷贝:


git co b2
git cp <SHA1 of the source commit>

查看commit历史


git log
git lol
git blame <filename>

查看代码修改情况


# 看那些文件是新文件,或者被修改过,但还没有提交。
git status

# 看所有还没有提交的代码修改
git diff

# 查看某个commit的内容
git show <SHA1>

# 比较两个commit
git diff <SHA1-1> <SHA1-2>

解决代码冲突

从服务器上拉取最新代码:


git fetch origin
git rebase origin/master

如果代码有冲突,会提示那个文件有冲突。这是需要手工编辑有冲突的文件来解决冲突,方法跟用SVN是一样的。冲突解决之后,用git add命令告诉系统冲突已经解决:


git add <filename>
git rebase --continue

总结:Git使用原则

  • 如果同时要解决多个问题,最好在本地为每一个问题创建一个分支进行工作
  • 在做git push的时候,绝对不可以用-f参数
  • 不要直接使用git pull命令,而要使用fetch + rebase的方式以保持commit是一条直线

关于Window用户

windows下安装git

通过http://git-scm.com/download/win来下载git的windows客户端。或者使用Ecplise的Git插件。

windows下生成SSH keys(公钥)步骤

1.首先成功安装Git.有两种方式安装SSH keys:一种是通过openSSH,另一种是通过PuTTY.建议通过openSSH的方式安装,PuTTY方式适用于对Git和SSH如何工作比较熟悉的朋友安装。

2.打开Git Bash,输入ssh-keygen -t rsa运行命令,按提示设置安装目录及密码,一般选择按enter键安装在默认目录(通常为C:\Documents and Settings\username\.ssh\ 或者 C:\Users\username\.ssh)。key密码也可以为空。

3.到默认路径下面去找.ssh文件夹里面的id_rsa和id_rsa.pub文件。id_rsa.pub里面就是生成的SSH key。

4.至此key已经生成。

提示:(1)用户想访问Git仓库时,需将公钥文件id_rsa.pub发给Git仓库管理员,由管理员将公钥添加到项目权限后,便可访问了。

(2)步骤2中产生的密钥文件,必须被放到当前用户目录的“.ssh”目录下才能生效。^_^ OK了!

转载请注明:HugNew » 十分钟Git快速入门

喜欢 (11)or分享 (0)
发表我的评论
取消评论

表情
(2)个小伙伴在吐槽
  1. 学习了
    匿名2015-03-04 07:14 回复
    • Absolutely first rate and cob-trppoetomed, gentlemen!
      匿名2015-06-09 20:57 回复