Gitlab/Github的一些基本操作指令记录

一、一些基本操作介绍

1 创建仓库

选择一个合适的目录,通过 git init 命令把这个目录变成Git可以管理的仓库:

$ git init

然后会发现当前目录下多了一个.git的目录(默认隐藏),这个目录就是Git的版本库,是Git来跟踪管理版本和分支的,一般不需要手动修改。

2 把文件添加到仓库

  1. 选择待添加的文件。
$ git add readme.md
$ git add .	# 上传当前文件夹所有文件
  1. 用命令git commit -m"<message>"告诉Git,把文件提交到仓库
$ git commit -m "wrote a readme file"

这里的message相当于版本的标志,要起成有意义的名字
注: 可以多次add不同的文件,最后一次性commit

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "3 files are added."

此时可以用 git status 查看当前文件区的状态:

$ git status
On branch master
nothing to commit, working tree clean 
# 说明当前分支下所有文件均已commit,工作区是“干净”的

3 从远程库克隆

在本地的合适目录下,使用git clone [你要克隆的远程仓库地址]命令克隆。
注意到,GitHub给出的地址不止一个。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。

$ git clone https://github.com/user-name/repo-name.git
$ git clone git@github.com/user-name/repo-name.git

克隆结束后,目录下自动会有一个.git的隐藏目录,因为是clone来的,所以.git文件夹里存放着与远程仓库一模一样的版本库记录。clone操作是一个从无到有的克隆操作,再次强调不需要git init初始化。

:基于ssh协议进行远程仓库连接,经常出现意想不到的坑(比如Please make sure you have the correct access rights
and the repository exists.),所以建议都用http协议

4 把本地库的内容推送到远程库

  1. 将已有的本地仓库关联远程库。
$ git romote add origin [你要上传的远程仓库地址]

如出现 fatal: remote origin already exists. 意思是仓库名重复,需要先移除已有关联:

# 查看当前关联
$ git remote -v
# 移除关联origin
$ git remote rm origin
# 也可以尝试修改远程仓库的简写名
$ git remote rename origin old-origin
  1. git push命令把本地库的内容推送到远程
$ git push -u origin master

这里实际上是把本地当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

5 删除文件

考虑已经在工作区删除了文件,那么,一般在git操作中有两种场景:
(1)彻底删除
此时工作区和版本库就不一致了,所以先从版本库中删除该文件,然后用commit提交新版本。

$ git rm readme.md
$ git commit -m "remove readme.md"

(2)撤销删除
此时可以从版本库中还原出删除前最近版本的文件

$ git checkout -- readme.md

6 分支管理基本操作

# 查看当前所有分支(分支树)
$ git branch
# 创建分支
$ git branch <name>
# 切换分支
$ git checkout <name>
# 或者
$ git switch <name>
# 创建+切换分支(建议使用)
$ git checkout -b <name>
# 或者
$ git switch -c <name>
# 合并某分支到当前分支
$ git merge <name>
# 删除分支
$ git branch -d <name>

7 分支推送与拉取

  1. 推送分支
    把该分支上的所有本地提交推送到远程库。
    git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名>
    一般远程分支默认与本地分支相同。推送时,指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上。
$ git push origin <branch-name> 
  1. 抓取分支
    拉取远程分支更新到本地仓库的操作。
    git pull的一般形式为git pull <远程主机名> <远程分支名>:<本地分支名>
    将远程主机origin的master分支拉取过来,与本地的branchtest分支合并。
    比如远程仓库里的学习资料有了新版本,需要把新版本的内容获取下来然后再与本地分支merge(合并)。默认情况下是把远程仓库的master分支拉去到本地当前分支:
$ git pull origin

事实上,git pull = git fetch + git merge,即:

$ git pull origin master:branchtest
# 等价于
$ git fetch origin master:brantest
$ git merge brantest

如果想要更加可控一点的话推荐使用fetch + merge。

二、实际应用操作举例

1 从本地仓库推送文件到自己分支的远程仓库的全过程

辅助理解的阅读推荐:git使用的简易指南

# 选择一个合适的目录,新建仓库
$ git init
# 将已有的本地仓库关联远程库
$ git romote add origin [你要上传的远程仓库地址]
# 创建+切换分支
$ git checkout -b <name>
$ git pull origin <name>   # 若远程库有更新,则需先抓取分支,拉取远程分支更新到本地仓库的操作。
$ git add .   # 上传当前文件夹所有文件
$ git commit -m "update"   # 告诉Git,把文件提交到仓库
$ git status   # 查看当前文件区的状态
$ git push origin <name>   # 把本地分支推送到远程库对应的远程分支上

2 关于Gitlab的ip地址变更后的操作记录

git remote rm origin  # 先删除
git remote add origin http://github.com/tencent-project/test.git   # 再添加新的git地址
# 然后再从本地仓库推送文件到自己分支的远程仓库
$ git pull origin <name>   # 若远程库有更新,则需先抓取分支,拉取远程分支更新到本地仓库的操作。
$ git add .   # 上传当前文件夹所有文件
$ git commit -m "update"   # 告诉Git,把文件提交到仓库
$ git status   # 查看当前文件区的状态
$ git push origin <name>   # 把本地分支推送到远程库对应的远程分支上
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值