1. 本地项目提交到远程仓库
0. 克隆命令:git clone URL
1. 初始化本地库
1.1 创建空目录,该目录打开git控制面板。
1.2 将该目录交给Git进行管理。
git init
2. 将文件添加到Git暂存区。
git add . (提交所有)
git add 文件名 (指定文件夹提交, 文件所在路径)
3. 给添加文件作说明解释,保存到本地仓库中。
git commit -m "说明"
3.1 查看远程仓库名称
git remote // 查看远程仓库名称
git branch // 查看本地分支名称
git checkout master // 切换到指定分支
4、与远程仓库建立关联(将本地仓库和远程仓库进行关联)
git remote add origin URL:使用HTTP克隆路径
5、提交到指定远程仓库分支。(强制提交覆盖远程仓库代码:-f 强制)
git push -f origin master:subbranch // git push 远程主机名 本地分支名:远程分支名
2. Git管理本地文件
① 查看git的状态
git status
② 查看文件与上一次有什么不同
git diff 文件名
③ 查看提交日志
git log
git log --pretty=online 规范输出日志
④ 回退到上一个版本
git reset --hard HEAD
⑤ 回退到特定的版本
git reset --hard 版本id(id的前几个字符即可识别)
⑥ 查看git的每一次命令
git reflog
⑦ 查看工作区和版本库内文件的不同
git diff HEAD --文件名
⑧ 丢弃工作区的修改
git checkout -- 文件名
--符号很重要,如果没有该符号则表示切换到另一分支
⑨ 撤销暂存区的文件
git reset HEAD 文件名
可以将暂存区的修改回退到修改区
⑩ 删除版本库中的文件,当文件被删除掉后,版本库中还会存留,可以使用git rm命令删除掉
git rm 文件名
git commit -m "..."
如果删除错了但没有提交,可以使用checkout恢复
git checkout -- 文件名
如果删除错了但已经提交,可以使用git reset回退
get reset --hard 版本号回退
2. 分支管理
① 创建合并分支
git checkout -b dev 创建并切换到dev分支
相当于:
git branch dev
git checkout dev
② 合并分支
git checkout master 切换到主分支
git merge dev 合并dev分支到主分支
git branch -d dev 删除分支dev
③ git解决冲突
当git无法自动合并分支时,就必须首先解决冲突。解决完冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内天,再提交。
④ 查看分支合并图
git log --graph
⑤ 使用普通模式进行合并
git merge --no-ff -m "description" 分支名
--no-ff参数表示禁用Fast forward,使用该参数就可以使用普通模式合并,合并后的历史有分支,可以看出来曾经做过合并。
⑥ "存储"当前工作现场和恢复工作现场,在stash前必须先add添加到暂存区
git add 文件名
git stash -存储当前工作现场
git stash list -查看存储的工作现场
git stash pop -恢复工作现场
恢复工作现场的另一种方法:
git stash apply stash@{编号}
git stash drop
⑦ 强行删除一个没有被合并过的分支
git branch -D 分支名
每开发一个新功能,最好新建一个分支
⑧ 推送分支
git push origin mster
git push origin 分支名
⑨ 多人协作的工作模式
1. 首先,可以试图用git push origin <branch-name>推送自己的修改;
2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3. 如果合并有冲突,则解决冲突,并在本地提交;
4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
5. 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
6. 这就是多人协作的工作模式,一旦熟悉了,就非常简单。
⑩ 将本地未push的分支提交历史整理成直线
git rebase
rebase的目的是使得我们在查看历史提交的变化时更容易。
3. 标签管理
tag就是一个让人容易记得住的有意义的名字,它跟某个commit绑定在一起
① 创建标签
gittag标签名#创建标签
git tag # 查看所有标签
git tag 标签名 提交的id号 # 为某一个提交提案加id号
git show 标签名 # 查看标签信息
git tag -a 标签名 -m "说明" 提交的id号;-a指定标签名,-m指定说明文字
标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。
② 删除标签
删除本地标签
git tag -d 标签名
删除远程标签
git tag -d 标签名 # 先删除本地标签
git push origin :refs/tags/标签名 # 删除远程标签
③ 推送标签到远程服务器
git push origin 标签名 # 推送某个标签到远程服务器
git push origin --tags # 一次性推送全部尚未推送的标签到服务器
4. 自定义Git
① 配置Git显示颜色
git config --global color.ui true
② 忽略特殊文件
添加一个.gitignore文件,在文件中写要忽略的文件
提交.gitignore文件到Git
③ 配置别名
git config --global alias. 别名 原命令 # 为命令设置别名
引用链接忘记了~~~~~~~~~
总结
.========================努力干吧!菜鸟。