git学习笔记

从svn转到git版本控制之后,就爱上了它,再配合上github,简直不要太爽,以下是结合多方查询之后,总结出来适用于自己的git笔记!


配置

配置账号信息

1
2
3
4
5
6
7
8
git config -e [--global]  #编辑Git配置文件

git config --global user.name itxcc
git config --global user.email itxcc420@gmail.com

git config --list #查看配置的信息

git help config #获取帮助信息

配置密钥

1
2
3
ssh-keygen -t rsa -C itxccc420@gmail.com #生成密钥

ssh -T git@github.com #测试是否成功

配置别名

1
2
3
4
git config --global alias.st status #git st
git config --global alias.co checkout #git co
git config --global alias.br branch #git br
git config --global alias.ci commit #git ci

基础命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
git init #初始化

git status #文件状态

git add [file1] [file2] ... #.或*代表全部添加

git commit -m "msessage"
备注:
- type(文件):‘备注’
- - feat:新功能
- - fix:修复bug
- - style:格式
- - refactor:代码重构
- - chore:项目构建

git push origin 分支名称 #推送到某个分支

git log #查看所有提交记录
git reflog #不小心删除了东西,先查到commit id,恢复

git branch #显示所有本地分支
git branch test #新建test分支
git push git test #推送test分支到远程
git checout test #切换到test分支
git merge test #将test分支合并到当前分支
git branch -d test #删除test分支
git push origin -d test #删除远程test分支

git rebase master#将master分之上超前的提交,变基到当前分支
git rebase --onto master 169a6 #限制回滚范围,rebase当前分支从169a6以后的提交
git rebase --interactive #交互模式
git rebase --continue# 处理完冲突继续合并
git rebase --skip# 跳过
git rebase --abort# 取消合并

git tag #列出现有标签

git tag v0.1 [branch|commit] # [从指定位置]新建标签
git tag -a v0.1 -m 'my version 1.4'#新建带注释标签

git checkout tagname#切换到标签

git push origin v1.5#推送分支到源上
git push origin --tags#一次性推送所有分支

git tag -d v0.1#删除标签
git push origin :refs/tags/v0.1#删除远程标签

开发流程

  • 一般而言,会有两个公共分支
        master (项目主分支)
        dev (测试分支)
  • 开发一般是需要在自己的分支进行开发,然后推送到远端,本地则需要git merge 本地分支来进行更新dev分支,如果是多人开发,则需要git pull来更新dev分支
  • 在开发需要下拉代码时,远程仓库和本地刚好又有改动,最好先将自己在本地的代码进行 git stash (暂存区),再去进行下拉,在运行git stash pop 把自己的代码释放出来
  • 添加tag
        git tag -a v0.0.0 -m ‘v0.0.0’
        git push – tag