1.git安装
2.配置git
设置密钥
首先在本地创建ssh key;
$ ssh-keygen -t rsa -C "your_email@youremail.com"
邮箱尽量填写注册github时的邮箱
成功后在C:\Users’'你的用户名"生成.ssh文件夹,点进去打开id_rsa.pub,复制里面的key。回到github上,进入 Account Settings(账户配置),左边选择SSH Keys,Add SSH Key,title随便填,粘贴在你电脑上生成的key。
为了验证是否成功,在git bash下输入:
$ ssh -T git@github.com
如果是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。
设置username和email,因为github每次commit都会记录他们。
$ git config --global user.name “your name”
$ git config --global user.email "your_email@youremail.com"
注:如果已经设置过了,可以跳过这一步
初始化git,没创建一个新项目,都应该先git init
$ git init 初始化后目录文件夹中会出现.git的隐藏文件夹
进入你的项目目录,链接远程仓库地址,右键git bash:
$ git remote add origin git@github.com:yourName/yourRepo.git(此为github项目的SSH)
注意:取消本地目录下关联的远程库
git remote remove origin //每次使用完之后都应该与远程库断开
进入本地项目目录中.git,打开config,这里会多出一个remote "origin"内容,这就是刚才添加的远程地址。
将github上仓库内容克隆到本地:
此时不能使用git pull,因为本地目录为空,没有任何分支
git clone git@github.com:kong/one.git(这个是你项目的SSH)
将本地项目上传至github仓库:
流程线:本地内容—暂存区—HEAD—github远程仓库
1.将内容提交到暂存区
git add [filename] //某个文件
git add . //当前目录所有文件
2.将暂存区内容提交到HEAD
git commit -m “提交标记信息”
3.将HEAD内容提交至github远程仓库
第一次需要写origin master
git push origin master //第二次再提交可以直接写git push
到这里git与github的最基本操作就完了,下面是git更进一步的操作
分支操作
git branch 查看本地所有分支
git branch 查看远程所有分支
创建一个叫做"feature"的分支,并切换过去
git branch feature
git checkout feature
或者直接写下面一句:
git checkout -b feature
删除’"feature"分支
git branch -d feature
单独将该分支推到github远程仓库中,不然外人不能看到这个分支及其内容
git push origin feature
也可以在本地项目内容操作完成,通过,git add ,git commit -m ‘信息’ ,git push一起提交
更新与合并
git pull:是从远程获取最新版本到本地,并自动merge;
git fetch:是从远程获取最新版本到本地,不会自动merge;
git pull 其等于获取fetch+合并merge
使用git pull 时应该保证本地具有当前分支,如果本地为空,应为git clone
合并到当前分支(例如master),注意:此时应该切换到目的分支
git merge [branch]
如果合并发生冲突(conflicts),需要手动修改,修改完成之后,git add [filename],来向git说明,修改完成
在合并改动之前,你可以使用如下命令预览差异:
git diff <source_branch> <target_branch>
查看git状态
git status 以查看在你上次提交之后是否有修改。
git diff来查看执行git status的结果的详细信息。
1.尚未缓存的改动:git diff
2.查看已缓存的改动:git diff --cached
3.查看已缓存的与未缓存的所有改动:git diff HEAD
4.显示摘要而非整个diff:git diff --stat
替换本地改动
假如你操作失误,你可以使用如下命令替换掉本地改动:
git checkout . 或git checkout – [file]
会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。
当执行 “git rm --cached [file]”
会直接从暂存区删除文件,工作区则不做出改变。
git reset HEAD [file]
//file是可选参数,此命令用于取消已缓存(在暂存区)的内容。
Git查看提交历史
git log
简洁版本
$ git log --oneline
图形化查看
$ git log --oneline --graph
时间逆向查看
$ git log --reverse --oneline
新手可以不用看,这个写给自己的
注意:本地和github仓库分支和内容其实基本一样,所有merge是将某个分支合并至本地某个分支上面,然后在推到github上面更新本地仓库(工作目录)。
简单来说,本地也具有和github上面一样的分支。