学习资料:
1,git config
1,用户名和邮件
配置用户名和邮件:
git config --global user.name 'Your name'
git config --global user.email 'Your email'
git config --list --global
2,git 别名
git config --global alias.st status
git config --global alias.ci commit
git config --global alias.co checkout
git config --global alias.br branch
git config --global 的配置都会放在 ~/.gitconfig 文件中,如下:
[alias]
co = checkout
br = branch
ci = commit
st = status
[user]
email = myemail@qq.com
name = myname
3,git ssh 免密登录
首先,查看 ~/.ssh 目录中是否有了公钥和私钥:
> ls ~/.ssh
————————————————————————————
id_rsa
id_ras.pub
如果没有则生成 ssh 文件,如果已有则忽略生成 ssh 步骤:
> ssh-keygen -t rsa -b 2048
把生成的公钥 id_ras.pub 中的内容粘贴到远程 git 管理平台中。
账户 > Your Profile/Settings > Edit Profile > SSH Keys > New SSH Key
2,git init & clone
创建 git 仓库有两种方式:
- 用 git init 初始化一个目录
- 从远程仓库克隆一个 git 项目
git init
git clone <url>
3,git add
将指定内容放入暂存区:
git add <file>
git add .
撤销:
git reset HEAD <file>
git checkout -- <file>
4,git commit
git commit
git commit -a
git commit -m
git commit --amend -m [message]
回滚:
git reset --hard <commit_id>
git revert
git commit message 规范:
- feat:新功能、新特性
- fix:修补 bug
- docs:文档修改
- style:代码格式修改(不影响代码运行的变动)
- refactor:代码重构(即不是新增功能,也不是修改bug)
- perf:优化相关,比如提升性能、体验
- test:增加测试
- chore:构建过程或辅助工具的变动
- revert:回滚代码
5,git status
git status
git status -s
M README
MM Rakefile
A lib/git.rb
?? LICENSE.txt
6,git diff
git diff
git diff <file>
git diff --staged/cached
7,git rm & mv
git rm <file>
git rm --cached <file>
git mv <from> <to>
9,git log
git log
git log <file>
git log -p / --patch -n
git log --stat
git log --pretty=oneline
short
full
fuller
git log --pretty=format
git log --pretty=format:"%h %s" --graph [--all]
10,git remote
git remote -v
git remote add <shortname> <url>
git remote rm <shortname>
git fetch <shortname> <branch>
git fetch <shortname>
11,git pull & push
git pull origin <branch>
git push origin <branch>
12,git branch & checkout
git branch
git branch -r
git branch -a
git branch <new_branch>
git checkout <branch>
git checkout -b <new_branch>
git checkout <branch> origin/<branch>
git checkout -b <branch> origin/<branch>
git branch -d <branch>
git merge <branch>
13,git stash
这样一个场景:
- 你正在当前本地分支(my_branch)上做开发
- 突然来了一个紧急任务,你需要去处理,那就要切到一个新的分支上去处理
- 如果当前工作区有还未提交的文件,这时候是无法切换到新的分支的
- 此时你有两种方式:
- 第一种:将当前工作区内容提交后,切换到新分支去处理问题
- 第二种:将当前工作区的内容暂存,切换到新分支去处理问题
- 在新分支上处理完问题之后,切换到之前分支(my_branch)继续开发
第 4 步的第一种方式无须讲解,你就会处理。来看下第 4 步的第二种方式如何处理?
这时候需要用到 git stash 命令:
git stash
git stash list
git stash pop
14,git 禁令
在团队合作中以下命令最好禁止使用:
git push -f
15,git 工作流
1,主干开发
2,github flow
2,git flow
|