打开、提交文件
1、$ mkdir 文件夹名。代码说明:mkdir表示的创建一个文件夹。如果我们希望,在当前的路径“/u/Git_test h5course”下,创建一个名为“h5”的文件夹,那么输入如下命令:“$ mkdir h5”
2、cd 路径。代码说明:cd表示的是路径,通过cd 路径,进行当前路径的变化。比如当我创建git文件夹之后,希望能够进入这个文件夹进行操作,就输入“$ cd git”即可。如果想从当前路径返回到上一级,则使用“$ cd …/”即可。
3、$ pwd。代码说明:该命令的主要作用,是用来显示当前目录。
4、$ git add 文件名。将该文件通过git add方法添加到仓库当中
5、$ git commit -m 说明信息。将该文件通过git commit方法,告诉Git,并把文件提交到仓库,代码说明:-m后面输入的是本次提交的说明,就如同我们每次提交SVN时的“注释”一样,可以不写,但是建议书写。
git commit命令执行成功后会告诉我们,有1个文件被改动(我们新添加的index.html文件),并且插入了11行内容(index.html中有11行的内容)。
回退、跳转与数据恢复
1、$ rm 文件名 。使用rm命令进行文件删除。
2、$ git status 。如果我们通过git status命令,发现Git版本库的状态发生了变化,那么,我们有可能想了解具体在哪里发生了变化。这时候,我们可以通过git diff查看版本的变化。
3、$ git reflog 可以打印出我们的每一次的Git命令历史;即便是我们进行版本回退之后,依旧能够检查到之前每次Git命令的ID,再通过ID去找到回退之前“比较新”的版本。
4、$ git log 。我们可以通过git log方法获取到所有Git版本变化的历史,显示从最近到最远的提交日志。
5、$ git reset 。
该命令主要是通过HEAD这个指针,在各个版本之间进行切换。由于每次版本库变化一次,都会创建一个版本分支。而HEAD就是指向各个版本分支的指针,我们可以利用HEAD的指向来改变当前的版本。比如:
回到上一个版本 $ git reset --hard HEAD^
回到上上个版本 $ git reset --hard HEAD^^
回到上上个版本 $ git reset --hard HEAD~2
另外,我们也能够通过commit ID,这个具有“唯一”特性的,能够标识每次Git提交操作的ID号码进行版本的跳转,如:$ git reset --hard commit_id
6、$ git reset HEAD file 。file表示的是具体文件名,用于从版本库取备份,并恢复暂存区
7、$ git checkout – file 。 file表示的是具体文件名,用于从暂存区获取备份,并恢复工作区,“git checkout – file”命令中的“–”很重要,没有“–”,就变成了“切换到另一个分支”的命令
注意: Git存储的机制在于“工作区 ——> 暂存区 ——> 版本分支”
二次提交Git时操作
1.输入git status 查看项目中哪些文件发生了变化,当做验证使用
2.git add . 将所有变更文件添加进来
3.git status 这个时候文件都变成了 new file
4.git commit -am ‘first commit init project’ //但是在window下单引号换双引号,提交到本地仓库
5.git push 把本地的推送到远程的分支上面即可
6.git status 查看
git常用命令
安装及配置:
Ubuntu下安装:sudo apt-get install git
配置用户名:git config --global user.name “你的名字”
配置e-mail:git config --global user.email “你的邮箱@xx.com”
与添加有关的:
将当前目录变为仓库:git init
将文件添加到暂存区:git add 文件名 [可选:另一个文件名]
将暂存区提交到仓库:git commit –m “描述”
与查询有关的:
查询仓库状态:git status
比较文件差异(请在git add之前使用):git diff 文件名
查看仓库历史记录(详细):git log
查看仓库历史记录(单行):git log --pretty=online 或 git log --online
查看所有版本的commit ID:git reflog
与撤销有关的:
撤销工作区的修改:git checkout – 文件名
撤销暂存区的修改:git reset HEAD 文件名 (git add 后的撤销,不加文件名就返回上次,如果已经commit,会连同commit一起撤销)
回退到历史版本:git reset --hard 该版本ID
回退到上个版本:git reset --hard HEAD^
commit后撤销: git reset --soft HEAD^ (commit撤销后代码仍然保留,不撤销add)
commit后撤销: git reset --hardHEAD^ (删除工作空间改动代码,撤销commit,撤销git add,回到上次commit状态)
上上版本是HEAD^^,也可用HEAD~2表示,以此类推
与标签有关的:
为当前版本打标签:git tag 标签名
为历史版本打标签:git tag 标签名 该版本ID
指定标签说明:git tag –a 标签名 –m “标签说明” [可选:版本ID]
查看所有标签:git tag
查看某一标签:git show 标签名
删除某一标签:git tag –d 标签名
git 报错:
Pull is not possible because you have unmerged files.
解决:
1.pull会使用git merge导致冲突,需要将冲突的文件resolve掉 git add -u, git commit之后才能成功pull.
2.如果想放弃本地的文件修改,可以使用git reset --hard FETCH_HEAD,FETCH_HEAD表示上一次成功git pull之后形成的commit点。然后git pull.
与GitHub有关的:
先有本地库,后有远程库,将本地库push到远程库
关联本地仓库和GitHub库:git remote add origin 网站上的仓库地址
第一次将本地仓库推送到GitHub上:git push –u origin master
先有远程库,后有本地库,从远程库clone到本地库
从远程库克隆到本地:git clone 网站上的仓库地址
网站地址可以选择HTTPS协议(https://github.com…)、SSH协议(git@github.com…)。
如果选择SSH协议,必须将Ubuntu的公钥添加到GitHub上。见下一步
SSH Key
生成SSH Key:ssh-keygen –t rsa –C “你的邮箱@xx.com”
生成Key时弹出选项,回车选择默认即可。
Key保存位置:/root/.ssh
登陆GitHub,创建new SSH key,其内容为/root/.ssh/id_rsa.pub中文本
已经有了本地库和远程库,二者实现同步
本地库的改动提交到远程库:git push origin master
更新本地库至远程库的最新改动:git pull
删除本地git的远程分支和远程删除git服务器的分支
新建分支:
git checkout -b new
它是下面两条命令的简写:
git branch new
git checkout new
列出本地分支:
git branch
查看全部分支:
git branch -a
查看本地分支:
git branch -l
查看远程分支:
git branch -r
删除本地分支:
git branch -D BranchName
其中-D也可以是–delete,如:
git branch --delete BranchName
删除本地的远程分支:
git branch -r -D origin/BranchName
远程删除git服务器上的分支:
git push origin -d BranchName
其中-d也可以是–delete,如:
git push origin --delete BranchName
设置远程的push地址
git remote set-url origin ssh://git@gitlab.apulis.com.cn:29033/aistudio/pipeline-frontend.git
拉取远程文件并创建本地文件
git checkout -b “本地分支名” origin/‘远程分支名’