Git
Git管理
- 创建仓库
git init
在本地目录下建立新git仓库,该仓库可以为空也可以是重新初始化的仓库。该命令将创建一个名为 .git 的子目录,这个子目录含有初始化的 Git 仓库中所有的必须文件,仅仅是做了一个初始化的操作,项目里的文件还没有被跟踪。此时可通过 git add 命令来实现对指定文件的跟踪,然后执行 git commit 提交。
git clone [path] [name]
克隆仓库至当前目录,path可以为本地也可以是远程,name为仓库的命名。 - 添加和提交
git add [file]
workdir->index->head
将修改的文件添加入缓存流(index)
git commit -m “代码提交信息” /git commit -a /git commit –initial
将修改后的index提交至head - 推送至仓库
git push orgin [branch(default:master)]
若你之前未使用clone那么需要
使用:
git remote add origin 分支概念
分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是“默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。
git checkout -b newfeature #建立并切换分支
or
git branch newfeature #建立分支
git checkout newfeature #切换分支git branch # 查看分支
并非每次都成功,并可能出现冲突(conflicts)。
这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。
改完之后,你需要执行如下命令以将它们标记为合并成功:
git add
git merge # 合并分支到master
git branch -d # 删除分支
git diff
git log –graph #查看分支合并图- 日志
git log #显示本地仓库日志
git tag 1.0.0 1b2e1d63ff #为各个提交记录设置标签 恢复
git checkout – #取消对文件的修改。还原到最近的版本,废弃本地做的修改。
git reset HEAD … #取消已经暂存的文件。即,撤销先前”git add”的操作
git commit –amend #修改最后一次提交。用于修改上一次的提交信息,或漏提交文件等情况。
git reset HEAD^ #回退所有内容到上一个版本
git reset HEAD^ a.py #回退a.py这个文件的版本到上一个版本
git reset –soft HEAD~3 #向前回退到第3个版本
git reset –hard origin/master #将本地的状态回退到和远程的一样
git reset 057d #回退到某个版本
git revert HEAD #回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit.(代码回滚到上个版本,并提交git)
git fetch
git reset –hard origin/master #丢弃本地版本恢复为远程版本SSH方式链接
Git 可以使用四种主要的协议来传输资料:本地协议(Local),HTTP 协议,SSH(Secure Shell)协议及 Git 协议。
HTTPS:不管是谁,拿到url随便clone,但是在push的时候需要验证用户名和密码;
SSH:clone的项目你必须是拥有者或者管理员,而且需要在clone前添加SSH Key。SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。生成SSH-key
ssh-keygen -t rsa -C youremail@email.com rsa加密生成SSH秘钥
生成的秘钥分为私钥id_rsa 和 公钥 id_rsa.pub 保存在 ~/.ssh/ 目录下。添加SSH-key
打开github账户的profile 设置 SSH-key
复制id_rsa.pub内容至key区域测试SSH链接
SSH -T git@github.com仓库设置SSH关联
由于remote方式可能不是ssh,使用
git remote -v #查看remote方式
若无ssh-url则进行
git remote set-url origin
SSH-URL可从github repository 的clone or download处复制获取.
格式类似于:git@github.com:account/project.git