git简单学习

    技术2022-07-10  112

    git简单学习

    GitGit安装UbuntuWindows 创建本地版本库第一步第二步注意添加文件 查看历史查看仓库当前状态查看与上一版本的不同查看多版本的修改回退撤销回退撤销修改删除文件复原删除文件 远程仓库创建SSH Key在Github添加公钥 创建远程版本库在Github上创建仓库关联远程版本库 推送到远程库 远程克隆注意分支创建分支合并分支删除分支创建切换分支的新方法 分支冲突禁用合并默认的Fast forward模式bug分支恢复指定的工作现场 强行删除未合并过的分支问题汇总git add . 报错Changes not staged for commit:

    转载自 廖雪峰的官方网站

    Git

    先进的分布式版本控制系统 由Linux用C语言开发,最初用来存放Linux代码

    Git安装

    Ubuntu

    等Linux上通过命令

    sudo apt-get install git

    可直接安装Git, 其他版本可通过源码安装,下载GIt源码,解压,依次输入:./config , make , sudo make install安装 Mac上自己在网上搜

    Windows

    在Git官网上下载安装程序,默认安装即可,安装成功后,在开始菜单中会出现Git Git Bash软件。还需要在命令行中输入:

    $ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"

    设置名字和Email地址。

    创建本地版本库

    第一步

    选择合适的地方,创建一个空目录,路径要求是英文

    $ cd learngit $ pwd /目录路径/learngit

    pwd用于显示当前目录

    第二步

    通过命令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 -- 文件

    远程仓库

    创建SSH Key

    Windows打开Git Bash,Linux打开shell,ssh-keygen -t rsa -C "邮件地址" 创建SSH Key 创建成功后,会生成.ssh目录和id_rsa和id_rsa.pub两个文件,id_rsa是私钥,id_rsa.pub是公钥

    在Github添加公钥

    打开Account settings, SSH Keys页面,点击Add SSH Key,Title随意,在Key文本框中粘贴公钥内容。

    创建远程版本库

    在Github上创建仓库

    仓库名和本地仓库一致

    关联远程版本库

    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 查看分支的合并情况

    禁用合并默认的Fast forward模式

    git merge --no-ff -m "merge with no-ff 提交信息" dev --no-ff禁用Fast forward,-m创建一个新的commit

    bug分支

    git stash 命令,将当前的工作现场储藏起来,以便恢复现场后继续工作 之后创建修复bug分支,修改后合并到需要修复的分支 git switch dev 回到dev分支继续工作 git stash list 查看工作现场, 一、git stash apply 恢复工作现场,然后git stash drop 删除stash内容 二、git stash pop 恢复的同时删除stash

    恢复指定的工作现场
    git stash list //查看 git stash apply stash@{0} //恢复指定的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 标签 删除

    问题汇总

    git add . 报错Changes not staged for commit:

    以至于不能切换分支,百度后,原来是该目录下还有另一个库,需要将这个库添加提交后,才能切换。

    Processed: 0.021, SQL: 9