Git
windows使用git
下载git
https://git-scm.com/
配置git
git config --global user.name "hy" git config --global user.email "598779784@qq.com"
方式一:公钥形式
ssh-keygen -t rsa -C "github邮箱"
这个邮箱是github发邮件用的
在C盘.ssh目录找到公钥复制到github
找到某个仓库的git地址
方式二:本地手写用户密码形式
进入到某个目录,把git仓库拉取下来,此时能在本地Git目录下看到一个仓库名的目录
仓库操作
仓库下含有.git文件,把要提交到github的文件copy过来,可以进行git命令操作了
Git常用命令
git diff //可以对比本次修改了什么内容,相比较仓库里面的版本
git status //查看是否状态更改
创建版本库
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
mkdir /home/gitroot cd !$ git init //用这个命令初始化,让这个目录变成git可以管理的仓库 [root@hy2 ~]# cat .gitconfig [user] name = hy2 email = 598779784@qq.com [root@hy2 gitroot]# ls .git/ branches config description HEAD hooks info objects refs
提交文件到仓库
git add 1.txt //把1.txt添加到仓库中
git commit -m "add new file 1.txt" //add完了必须要commit才算真正把文件提交到git仓库里
删除仓库文件
git rm 1.txt
git commit -m "delete 1.txt"
撤销
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
回到上一次提交时的状态: git checkout -- 1.txt 已经add,未commit git reset HEAD 1.txt git checkout -- 1.txt 回到任意一次提交的状态: git log //可以查看所有提交git仓库的记录操作 git log --pretty=oneline //一行显示,更清楚 git reset --hard 0ff5ab1 //可以回退到第二行的这个版本,这里后面跟的字符串可以简写。 当回退到该版本后,再 git log 则最上面的版本不再显示了,那如果想再倒回退到第一行那个版本怎么办? git reflog //可以显示所有的版本
远程仓库管理
本地到远程
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
首先到 https://github.com 注册一个账号,创建自己的git,点repositories --> new 名字自定义,比如叫studygit 选择public 点 create repository 添加key: 右上角点自己头像,选择settings,左侧选择SSH and GPG keys 右上角点New SSH key,把linux机器上的 /root/.ssh/id_rsa.pub内容粘贴到这里 把本地参考推送到远程仓库 git remote add origin git@github.com:ecithy/studygit.git git push -u origin master 下一次再推送,就可以直接 git push
远程到本地
git clone git@github.com:ecithy/studygit.git
分支管理
父分支看不到子分支文件,子分支能看到父分支文件 查看分支 git branch 创建分支 git branch hy git checkout hy 切换分支 git checkout master 合并分支(在目标分支下) git merge 指向目标分支 git rebase 直接跳到目标分支的后面 如果父分支和子分支都对同一文件进行了编辑,内容不一致无法合并 删除分支 git branch -d aming //删除分支 如果分支没有合并,删除之前会提示,那就不合并,强制删除 git branch -D aming
使用分支的原则
对于分支的应用,建议大家以这样的原则来:
master分支是非常重要的,线上发布代码用这个分支,平时我们开发代码不要在这个分支上。
创建一个dev分支,专门用作开发,只有当发布到线上之前,才会把dev分支合并到master 开发人员应该在dev的基础上再分支成个人分支,个人分支(在自己pc上)里面开发代码,然后合并到dev分支
8. 保留现场
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是git stash命令。 比如我们在hy分支,编辑了一个新的文件3.txt 这时候我们需要到其他分支去修复一个bug,所以需要先git add 3.txt 然后 git stash 保存一下现场 再切换到另外分支去修复bug,修复完bug后,再回到aming分支 git stash list 可以看到我们保存过的现场 用 git stash apply 恢复现场 也可以指定stash: git stash apply stash@{1}
谢谢