- 在文件夹下创建版本控制(生成 .git文件夹)
git init
- 修改全局用户配置
git config --global user.email "fdsafsadf@qq.com"
git config --global user.name "mushi"
- 修改单个版本库的文件配置
// cd到master目录下(即 .git所在文件夹)
git config user.email "fdsafsadf@qq.com"
git config user.name "mushi"
- 查看配置
vim git config
- 克隆别人的git项目
// 注意,不能在master文件夹下使用,否则会造成冲突
git clone https://github.com/houdunwang/laravel-module.git
git要上传一个文件必须先把文件放到缓存区里(add)然后才能放入仓库中(commit)
- 查看目前文件添加状态(是否被add)
git status
- 选中需要commit的文件
git add a.php
此时可能会出现
这是因为文件中换行符的差别导致的。这个提示的意思是说:会把windows格式(CRLF(也就是回车换行))转换成Unix格式(LF),这些是转换文件格式的警告,不影响使用。可以通过修改配置项来解决这个毛病
git config core.autocrlf false
一次将所有修改的文件add到缓存
// 此处有 点
git add .
git commit -m "注释"
把它提交到版本库- 只想添加部分文件到缓存区
// 再Master下生成一个忽略上传文件
touch .gitignore
往忽略文件中写入不想上传的文件
// 忽略某个文件
a.php
// 忽略某个类型文件
*.txt
// 除了某个文件
!b.php
// 忽略文件夹
/vendor
// 忽略文件夹下的某个文件
/vendor/index.php
// 忽略文件夹下的某个类型文件
/vendor/*.php
git rm a.php
删除版本库中的文件,包含本地文件git rm --cached a.php
删除版本库中的文件,不包含本地文件- 文件改名
// git mv命令只是把本地文件名改了并放入到了缓存区,必须要commit操作
// git mv的操作为:复制文件,改名文件,删除原文件,add到缓存区
git mv a.php A.php
git commit -m 'rename'
PS:本地文件夹内直接进行改名后添加到缓存区,再commit也能达到同样效果
- 查看修改日志
// -p 详细修改内容 -1 看最近的一次
git log -p -1
// 只查看修改的文件名以及进行了什么修改(新建,更新)
git log --name-status
// 只查看修改的文件名
git log --name-only
git commit --amend
修改最新一次提交的日志
以下为分支相关操作
- 在第一次commit之后会生成一个master分支,通过
git branch
可以查看
- 追加并切换到新分支(*为正在使用的分支)
git branch ask
git checkout ask
17. 合并分支git merge ask
18. 删除分支git branch -d ask
19. 当两个分支merge时候如果出现了冲突,则可以手动vim进入冲突文件进行修改。
修改完后别忘了commit!!!
其他分支之后再merge master可以获取最新文件
20. 查看分支是否已经merge
git branch --merged
git branch --no-merged
此时未merge的想删除要通过-D方式来删除
21. 分支工作保存到一半需要切换其他分支,可以将分支先保存到缓存区
// 把分支修改保存到暂存区
git stash
// 查看目前的暂存区
git stash list
// 应用先前的暂存,不写stash@{0}默认为第一个
git stash apply stash@{0}
// 删除暂存,stash@{0}为list中的名字
git stash drop stash@{0}
// 从git栈中获取到最近一次stash进去的内容,恢复工作区的内容。。获取之后,会删除栈中对应的stash。。
git stash pop
- 版本标签
git tag v1.1
或者查看标签git tag
- 子分支合并之前主分支进行了commit,如果此时进行merge,log 会出现分支信息。所以子分支应该在合并前进行
git rebase
,即将子分支的分支点移向最近一次主分支的commit的点,再进行merge操作。这种做法可以当出现代码冲突的时候,让子分支管理者自己处理
以下为git hub相关操作
git clone
克隆远程代码git push
将代码推送到远程服务器gir branch -a
显示远程服务器分支- 在分支上直接push后,根据提示直接在远程服务器上创建并推送
- 克隆分支代码
git clone https://github.com/AkinoMush1/ComposerDemo.git
// 拉取远程ask分支到本地ask分支内
git pull origin ask:ask
-
先在本地进行分支合并后再推送到远程服务器(别忘了master代码要先pull最新版本,以及分支的rebase操作)
-
删除远程ask分支和本地ask分支
git push origin --delete ask
git branch -d ask