安装git
安装时: Use git from git bash only..,其他默认下一步 配置path: E:\programs\Git\bin 配置git:用户名和邮箱 右键-git bash git config --global user.name "yq" git config --global user.email "157468995@qq.com"
查看C:\Users\YANQUN.gitconfig
搭建git服务器(远程仓库) :统一的托管网站(github.com/)
为了 在本地 和远程仓库之间进行 免密钥登录,可以配置ssh
ssh:本地-远程 配置ssh:先在本地配置,发送给远程
现在本地生成ssh: ssh-keygen -t rsa -C 157468995@qq.com 一直回车 发送给远程: github - settings - SSH and ... - New SSH - title任意、key中输入 刚才在本地生成的ssh: 将本地刚才生成的id_rsa.pub内容复制到远程的Key中
测试连通性: ssh -T git@github.com
如果本地和远程成功通信,则可以在 /.ssh目录中 发现known_hosts文件 如果失败:多尝试几次 、检查回车符
基本概念
git 分布式版本控制软件(客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。不同版本的文件直接记录快照,而非差异比较。近乎所有操作都是本地执行)
Git有三大区(工作区【从项目中取出某个版本的所有文件和目录,用以开始后续工作的叫做工作目录】、暂存区、版本库)以及几个状态。对于任何一个文件,在 Git 内都只有三种状态:
已提交(committed),已修改(modified)和已暂存(staged)。
Git 使用 SHA-1 算法计算数据的校验和,通过对文件的内容或目录的结构计算出一个 SHA-1 哈希值,作为指纹字符串。所有保存在 Git 数据库中的东西都是用此哈希值来作索引的 命令:
,任何已经提交到 Git 的都可以被恢复
某个项目开始用 Git 管理
- 在工作目录中初始化新仓库。
- 克隆已有仓库, 暂存区:简单的索引文件,暂存区也位于这个.git目录之下,名为index,它一般很小 git add:将本地文件 增加到暂存区, Git 开始对这些文件进行跟踪。(对未跟踪和已修改的暂存和提交) git commit:将暂存区的内容 提交到 本地仓库(本地分支,默认master分支) git push:将本地仓库的内容 推送到 远程仓库(远程分支)
git pull:将远程仓库(远程分支)的内容 拉取到 本地仓库(本地分支)
在本地新建git项目 在项目根目录 右键 - git bash
- git init(保存元数据以及对象数据库的地方)
在远程建立git项目 new-建立项目- 生成 github.com/yanqun/mygi…
本地项目-远程项目关联 git remote add origin git@github.com:yanqun/mygitremote.git
第一次发布项目 (本地-远程) git add . //文件-暂存区 git commit -m "注释内容" //暂存区-本地分支(默认master) git push -u origin master
第一次下载项目(远程-本地) git clone git@github.com:yanqun/mygitremote.git
提交(本地-远程) (在当前工作目录 右键-git bash) git add. git commit -m "提交到分支" git push origin master
更新(远程-本地) git pull
Egit:在Eclipse中操作git 目前的eclipse基本都支持git,如果不支持 则到eclplise marktplace 搜git安装 配置: a.team-git-configuration -邮箱 用户名 b.general -network -ssh2选中 生成的ssh目录
第一次发布 share project 加入暂存区add to index 提交到本地分支commit 将项目推送到远程 右键-team -remote -push ---
提交 team-add to index team -commit team -push
commit时: commit and push 或commit按钮的区别: commit按钮:不能单独的Push某一个文件,只能Push整个项目 commit and push:可以 单独Push某一个文件
第一次下载 import -clone -输入 https/ssh的唯一标示符
更新 team - remote -pull
git冲突的解决: 发现冲突: 进入同步视图 右键——team - synchronized... 解决: 添加到本地暂存区 add to index 提交到本地分支 commit 更新服务端的分支内容 到本地分支 pull 修改冲突:直接修改 或者 merge tool (--->已经变为了普通本地文件) add to index commit push
origin 的远程库,Git 默认使用这个名字来标识你所克隆的原始仓库
fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支 git pull 命令自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支。
如果在你推数据前,已经有其他人推送了若干更新,那你的推送操作就会被驳回。你必须先把他们的更新抓取到本地,合并到自己的项目中,然后才可以再次推送。(且必须有写权限)
Git 鼓励在工作流程中频繁使用分支与合并
Git 中的分支,其实本质上仅仅是个指向 commit 对象的可变指针
HEAD 的特别指针(指向当前分支)
远程分支(remote branch)是对远程仓库中的分支的索引。它们是一些无法移动的本地分支。只有在同步时移动。要进行编辑必须有本地分支。
从远程分支 checkout 出来的本地分支,称为跟踪分支(tracking branch)。跟踪分支是一种和远程分支有直接联系的本地分支
克隆仓库时,Git 通常会自动创建一个名为 master 的分支来跟踪 origin/master。这正是git push 和 git pull 一开始就能正常工作的原因
衍合当成一种在推送之前清理提交历史的手段,而且仅仅衍合那些尚未公开的提交对象,就没问题。
轻量标签是指向提交对象的引用,附注标签则是仓库中的一个独立对象。建议使用附注标签。
回退
www.cnblogs.com/gavincoder/… www.jikewenku.com/276.html
1.配置好ssh用于远程 www.cnblogs.com/gavincoder/… www.jikewenku.com/276.html
冲突时合并新提交在同一文件同一行同时出现了修改。
常用回滚命令! blog.csdn.net/asoar/artic…