git流程:
一. 本地仓库的操作
1.获取git仓库
a.在本地创建git仓库:
创建文件夹,在文件夹下执行:git init,出现.git代表初始化成功。
b.从远程复制仓库:
git clone +远程仓库的地址
2.查看文件的状态:git status
git status -s 可以使输出的内容更简洁
3.将文件加入缓存区:
git add . (.代表加入全部的修改的文件)或 git add +文件名
4.将加入缓存区的文件取消暂存:
git reset HEAD +文件名
5.提交暂存区的文件:
git commit -m +"日志信息"
6.删除文件:
git rm + 文件名
7.将文件添加到忽略的列表里:
在git bash命令行下执行:touch .gitignore ,打开.gitignore文件写入忽略的文件名,如要忽略.class结尾的文件,写入*.class即可。
8.查看日志记录:
git log (退出查看log模式输入q即可退出)
二. 远程仓库的操作
1.查看远程仓库:
git remote 或 git remote -v (现实的信息会更全) 或者:git remote show origin (显示的信息会更全)
2.添加远程仓库:
git remote add origin +远程仓库的地址
3.移除远程仓库:
git remote rm + 仓库名(为了表达快捷文章之后的origin就代表仓库名,master就代表分支名)
4.从远程仓库抓取代码:
git fetch origin master ,他不会自动merge本地的代码,git merge origin/master 才会merge仓库的代码到本地;
5.从远程仓库拉取代码:
git pull origin master,他会自动merge代码到本地相等于git fetch+ git merge两个命令;
注意:如果本地工作区已存在远程仓库中的文件时,git pull会拉去失败,此时可以强制覆盖拉取:
git pull origin master --allow-unrelated-histories
6.推送到远程仓库:
修改文件后:
git commit -a -m "日志信息"(是 git add ,git commit -m的合并简写命令) ,
git push origin master
7.回退已经提交的修改:
git reset HEAD^ +文件名:可以将加入暂存区的文件回退到工作区
git checkout --+文件名: 可以取消文件的修改
8.回退到远程仓库的摸一个提交的版本:
commitid可以通过git log查看
git reset --hard +commitid
三. git分支操作
1.查看分支:
git branch : 查看本地的分支,
git branch -r : 查看远程仓库的分支,
git branch -a : 查看远程仓库和本地的所有分支;
git branch -vv:显示本地分支和服务器分支的映射关系
2.创建分支:
git branch +分支名:创建分支
git checkout +分支名: 切换到分支
git checkout -b +分支名 :创建并切换到分支
3.推送本地分支到远程仓库:
git push origin +分支名
4.合并分支:
eg:将dev分支合并到master分支:
1.切换到master分支:git checkout master,
2.git merge dev;
合并分支往往不会很顺利,会产生冲突,此时需要手动解决冲突,继续git add ,git commit操作提交即可。
合并完成后记得git push origin master到远程仓库才会更新代码。
5.删除分支:
删除本地分支:git branch -d + 分支名
如果本地的分支的代码和远程仓库的代码不一样,删除分支会报错,可以将-d 改成-D来强制删除分支;
删除远程仓库的分支: git push origin -d +分支名
四.应用场景
场景1: 你在本地创建了自己的分支dev在开发一个新特性,然后你接到通知说master分支有问题,此时你需要切回到master分支,创建一个fix分支,修复好bug后你将fix 分支合并到master分支,然后继续切到dev分支继续开发你的新特性。
操作步骤:
1.git branch dev
2.git checkout dev
3.开发新特性
4.git add .
5.git commit -m "new feature development"
6.接到通知
7.切回master:git checkout master
8.git branch fix
9.git checkout fix
11.git commit -a -m "fix master"
12.git checkout master
13.git merge fix
14.git push origin master
15.git checkout dev 继续开发自己的新特性
五.git标签
1.列出已有的标签:
git tag
git show tagname
2.创建标签:
git tag tagname,
3.推送标签:
git push origin tagname
4.检出标签:
git checkout -b branchname tagname
5.删除标签:
删除本地标签:git tag -d [tagname]
删除远程标签: git push origin :refs/tags/[tagname]
推荐的工具:tortoisegit 工具,
ssh公钥私钥生成命令:ssh-keygen-trsa