git在平时的开发中用的太频繁了,以致于我都不知道如何去形容它。囧。
假设咱们开发的工做相似于图书整理,写的代码就是不少人借书还书,假设我和你一块儿来整理这些书,有不少人来借书,你给A一本,我给B一本,这没有任何问题,可是,忽然来了C和D,他俩同时要借一本《时间简史》,并且这本书仅此一本,个人手伸向了这本书,你的手也伸向了这本书,而后,是书在咱们俩的争夺中被撕成两半了?仍是我和你打起来了?
咱们固然都不会这么蠢,咱们拿书的时候必定会看看对方有没有正在拿,若是你先伸手了我就让给你,没有必要打一架(笑)。
咱们多人开发的时候,维护一套代码,git这个工具就包含了咱们许多的行为,好比经常使用的git pull 就至关因而用眼睛去看一下,看看书架是否是有别人已经动过了,别人已经把书摆满了,本身还继续往这个地方放书,固然放不进去啦。php
yum install git
/ apt-get install git
brew install git
git init
git config --global user.name "yourname" git config --global user.email test@runoob.com git config --list //查看当前配置信息
ssh-keygen -t rsa -C "youremail@example.com"
以后一路回车,.ssh文件夹下就有了两个文件,私钥id_rsa和共钥id_rsa.pub,须要提供ssh密钥的都是要的共钥,id_rsa.pub。linux
git clone [git地址]
这个就是最经常使用的git拉取一个仓库的代码到本地的命令,会在当前的目录下新建一个仓库代码文件夹。若是你的ssh已经保存在这个仓库里了,那么你能够push,不然的话你只有pull的权限。git
git remote add [名字] [地址]
好比git remote add origin git@github.com:gaopu1995/hiphp.git
,就能够把本地仓库和远程创建链接。通常默认叫它 origin。
其余的几个远程仓库命令:github
git remote //查看当前远程分支名字 git remote -v //查看当前远程分支的url,有两个,一个fetch的,一个push的,通常会是同样的,就是你设置的那一个 git remote remove <name> //移除远程分支 git remote -h //其余的就本身看一下帮助吧
git push --set-upstream origin master
若是你删除或者更换了远程仓库,新的仓库在你推送的时候会让你把你当前的分支和远程分支创建映射关系,最后的两个参数就是远程仓库名和远程仓库的分支名,操做对象是你当前分支。windows
git pull //拉取最新代码 git push //把本地提交推送到远程 git add [文件](多个文件空格隔开) //把本地的更改添加到更改缓存中 git commit -m "提交注释" //提交目前缓存中的更改
解释一下:缓存
怎么改:冲突部分会用 >>>>>>>>分支 标出来,改为正确的,add而后commit就行。ssh
git checkout [分支名] //切换分支 git checkout -b [新分支名] //从当前分支copy一个新的分支 git branch -d [分支名] //删除分支 git branch //显示当前所在分支 git merge [分支名] //当前分支合并目标分支的修改
git stash //暂存代码 git stash list //查看stash存的内容 git stash pop //恢复第一个暂存 git stash clear //清理暂存
git log //查看提交记录 git log --oneline //查看提交记录的简单模式
git reset --hard commit_id //回退到某个版本