转载自 廖雪峰的官方网站
先进的分布式版本控制系统 由Linux用C语言开发,最初用来存放Linux代码
等Linux上通过命令
sudo apt-get install git可直接安装Git, 其他版本可通过源码安装,下载GIt源码,解压,依次输入:./config , make , sudo make install安装 Mac上自己在网上搜
在Git官网上下载安装程序,默认安装即可,安装成功后,在开始菜单中会出现Git Git Bash软件。还需要在命令行中输入:
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"设置名字和Email地址。
选择合适的地方,创建一个空目录,路径要求是英文
$ cd learngit $ pwd /目录路径/learngitpwd用于显示当前目录
通过命令git init 初始化这个目录,会多出来一个==.git==的目录,用来跟踪管理版本库
Git不能跟踪图片视频文件的变化,而且Word由于是二进制格式,也不能被跟踪(所以说,想通过git关系Word文件,呵呵呵)
在learngit即仓库目录下创建编写文件后,使用命令git add 文件名 把文件添加到仓库(成功后没有回显) 之后使用命令git commit -m "message" 告诉Git本次提交的说明 ,执行成功后,会提示文件改动
git status 返回结果为当前状态
git diff 文件名 比较不同版本的文件的不同,显示的格式是diff格式
git log 显示由近到远的提交日志 git log --pretty=oneline 显示简略信息
git reset --hard HEAD^ 当前版本是HEAD,上一个版本是HEAD^,上上一个是HEAD ^ ^, ……,HEAD ~ 100,……
git reflog 命令查看每一次命令(从近到远),git reset --hard 提交的ID的前几位即可
git checkout -- 文件名 丢弃该文件在工作区的修改 git reset HEAD 文件名(可选) 将暂存区的修改撤销掉,重新放回工作区
git rm 文件名 从版本库中删除文件,再git commit -m "remove 文件"
前提是版本库中有,git checkout -- 文件
Windows打开Git Bash,Linux打开shell,ssh-keygen -t rsa -C "邮件地址" 创建SSH Key 创建成功后,会生成.ssh目录和id_rsa和id_rsa.pub两个文件,id_rsa是私钥,id_rsa.pub是公钥
打开Account settings, SSH Keys页面,点击Add SSH Key,Title随意,在Key文本框中粘贴公钥内容。
仓库名和本地仓库一致
git remote add origin git@github.com:你的Github账户名/仓库名.git 其中origin是远程库的名字
git push -u origin master 把当前分支master推送到远程新的master分支 git push origin(远程库) master 把本地master分支的最新修改推送到GitHub
git clone git@github.com:账户名/自己的远程库名.git 克隆
Git支持多种协议,包括https,但ssh协议速度最快
git checkout -b dev 创建名叫dev的分支,并切换到dev分支 git branch 查看当前分支,当前分支前会有*号。
git checkout master 切换到master分支 git merge dev 将dev分支合并到master
git branch -d dev 删除dev分支
git switch -c dev 创建并切换到新分支dev git switch master 切换到已有分支
git status 查看冲突,手动修改冲突后再提交,合并 git log --graph --pretty=onelie --abbrev-commit 查看分支的合并情况
git merge --no-ff -m "merge with no-ff 提交信息" dev --no-ff禁用Fast forward,-m创建一个新的commit
git stash 命令,将当前的工作现场储藏起来,以便恢复现场后继续工作 之后创建修复bug分支,修改后合并到需要修复的分支 git switch dev 回到dev分支继续工作 git stash list 查看工作现场, 一、git stash apply 恢复工作现场,然后git stash drop 删除stash内容 二、git stash pop 恢复的同时删除stash
git branch -D 分支名 强行删除
git remote 查看远程库信息 git remote -v 查看远程库详细信息 git push 远程库名 分支名 推送其他分支 master 主分支,需要时刻与远程同步 dev开发分支,团队所有成员都需要在上面工作,时刻与远程同步 bug分支,在本地修复bug,一般不需要推送到远程 feature分支,取决于是否合作开发
git checkout -b dev origin/dev 创建远程origin的dev分支到本地
git push origin branch-name从本地推送分支,如果推送失败,git pull 抓取远程的新提交, 在本地创建和远程分支相对应的分支,使用git checkout -b -branch-name origin/branch-name本地和远程分支名称最好一致, git branch --set-upstream branch-name origin/branch-name 建立本地和远程分支的关联 git pull 从远程抓取分支,有冲突的话,先处理冲突
git tag 标签 打一个新标签 git tag 查看所有标签 git show 标签 查看标签信息 git tag -d 标签 删除
以至于不能切换分支,百度后,原来是该目录下还有另一个库,需要将这个库添加提交后,才能切换。