基本命令#
1
2
3
4
5
6
7
8
|
git config --global #全局配置
git config #当前仓库配置
mkdir #创建文件夹
ls #列出当前目录下(文件,文件夹)
ls -a #所有all
rm -rf * #删除当前目录下所有
touch #新建文件
cat #查看文件中的内容
|
不想`git add . 所有?
配置.gitignore 定义忽略提交的文件,其中
- 所有空行或者以注释符号
# 开头的行都会被 Git 忽略。
- 匹配模式最后跟反斜杠(
/)说明要忽略的是目录。
- 可以使用标准的 glob 模式(php)匹配。
从版本库删除#
1
2
|
git rm ... #从版本库中删除,本地也会删除
git rm --cached ... #只从版本库删除
|
从版本库改名#
log#
1
2
3
|
git log -p #显示文件变动信息
git log -1 #最近一次提交
git log --oneline
|
修改最新一次提交commit描述#
1
|
git commit --amend -m "xxx" #最近一次提交的描述
|
也可以把最新的git add . 方法放到这次commit 中
撤销add .#
1
|
git reset HEAD a.php #文件并未被改变,只是撤销add .
|
alias命令配置快捷操作#
1
2
|
git config --global alias.a add #在.gitconfig中设置a表示add
atom .gitconfig #家目录执行即可看到修改后的配置
|
关于分支#
只有commit后才会有分支!!!
创建分支#
1
2
|
git branch ... #创建分支
git checkout ... #切换分支
|
1
|
git checkout -b ...#创建并切换分支
|
合并分支#
1
|
git merge ... #合并分支到master
|
1
2
3
|
git branch #所有分支
git branch --merged #已经合并的分支
git branch --no--merged #未合并的
|
合并产生冲突?conflict??
手动修改冲突的文件,保留想要的内容在冲突文件中即可!然后提交
删除分支#
1
2
|
git branch -d ... #删除已经合并的分支
git branch -D ... #删除未合并的分支(慎用!写了几天的代码不要了??)
|
git 标准分支工作流#
git标准分支操作工作流
rebase优化分支合并#
rebase优化分支合并
说明: 在分支执行rebase,会将当前分支的提交紧接到master之后,然后merge,就相当于合并分支的第一种情况
区别:
不使用rebase
使用rebase
暂存区#
当前分支还未commit不允许跳转到其他分支!可以生成暂存区解决
1
2
3
4
5
|
git stash #生成暂存区
git stash list # 暂存区列表
git stash apply... # 恢复暂存区(不填后面标识默认为恢复第0个(stash${0}))
git stash drop ... #删除暂存区
git stash pop #恢复并删除
|
只有稳定代码才有资格打标签!
1
2
|
git tag #标签列表
git tag ...#打标签
|
生成代码发布压缩包#
1
|
git archive master --prefix="fin/" --format=zip > fin.zip
|
解释: 为master分支生成名为fin.zip的压缩包
SSH密钥#
使用ssh连接Github发送指令更加安全可靠,也可以免掉每次输入密码的困扰。
在命令行中输入以下代码(windows用户使用 Git Bash)
一直按回车键直到结束。系统会在~/.ssh 目录中生成 id_rsa和id_rsa.pub,即密钥id_rsa和公钥id_rsa.pub。然后向GitHub添加秘钥即可。