git基础命令(分布式版本控制系统)

打开、提交文件

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/‘远程分支名’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值