代码版本管理:Git日常使用指令

关于Git的几个概念

  • 版本库(仓库):储存代码文件等的地方
  • 本地仓库:本机仓库
  • 远程仓库:充当‘中央服务器’,用于不同节点之间进行代码交换的地方
  • 克隆:复制
  • 分支branch:不同分支做不一样的事情,用于协同开发
  • 标签:用于标注版本信息的‘指针’指向某一个commit位置

常用指令

1、新建空目录(用来创建仓库)

mkdir kkgit         # 创建目录
cd kkgit            # 打开空目录

2、初始化仓库,将目录转为仓库

git init            # 初始化
ls -ah              # 查看仓库...
ls -al
ls
# 创建空仓库后进行账户配置
git config --global user.email '[email protected]'
git config --global user.name 'klausLyu'

3、删除仓库:删除文件夹下隐藏的 .git 文件夹即可,删除该文件家后,仓库转为目录,目录中的文件仍旧会保留。若回复目录为仓库,执行 git initgit add .git.commit -m '...'等指令

ls .git             # 1) 转到目录下的 .git 文件
rm -rf .git         # 2) 删除 .git 文件,前面不加 git, ' rm -rf .git '

4、仓库中创建文件(终端创建 或者 直接仓库中创建好文件)

# 通过命令创建文件
touch test.txt          # 创建txt文件, touch指令
vi test.txt             # 终端中直接打开test.txt文件,浏览模式
i                       # 浏览模式 --> 插入模式 i 或 o 或 a (注意三者的区别),输入内容即可
ESC                     # 插入模式 --> 浏览模式
:wq                     # 浏览模式下输入 :wq 保存并退出文本编辑 (shift+:/; --> :)
cat test.txt            # 查看文件

4、添加文件到 git 仓库和删除文件(添加但并未入库,只是存储在暂存区,等待入库)

git add test.txt        # 添加文件, 没有任何提示表示没问题
# 添加多个文件: git add abc.txt def.txt  ---文件名之间用空格 
# 批量添加所有文件:git add .
# 修改文件名:abc.txt --> abcd.txt
    # code: git add abcd.txt
            git rm abc.txt
            git commit -m 'rename for abc.txt to abcd.txt'

# 删除文件: git rm test.txt

5、使用git将文件提交到仓库

git commit -m 'add a file of test.txt'

6、查看当前仓库的状态(是否有改动未add/rm和提交,未处理的)

git status                          # 若有未处理的,重复4和5的步骤,将所有改动处理并提交

7、查看修改的文件内容和日志log文件

git diff test.txt                   # 查看修改的文件内容
git log                             # 查看日志文件,获取提交记录

8、版本回退

git reset --hard HEAD^              # 回退到上一个版本
git reset --hard 版本号                # 版本号可通过git tag...指令进行指定

9、使用SSH进行上传提交更新时需要公钥(ssh协议

  • 生成获取pubkey: ssh-keygen -t rsa -b 4096 -C 'youremail'
  • 生成的pubkey默认位置:lixux:/home/tarena/.ssh目录下; windows:c:/Users/'accountname'/.ssh目录下
  • 添加pubkey: 打开id_rsa.pub cat id_rsa.pub 复制内容 在github中setting中SSH and GPG keys中添加SSH keys
    添加内容为复制的内容
    (报错,sign_and_send_pubkey:… 解决方法 运行 ssh-add)

10、git同步操作–建立远程仓库与本地仓库连接(先有本地仓库,后有远程仓库)

# 先有本地仓库,后有远程仓库
# 获取远程仓库,与本地仓库之间建立链接关系
# '远程仓库名'系统默认的是 origin, 也可以自定义, 建议使用默认的origin, 不会忘
git remote add '远程仓库名' '远程仓库地址(https协议 / ssh协议)'  

# https协议
git remote add origin https://github.com/KlausLyu/gitdemo.git
# ssh协议
git remote add origin git@github.com:KlausLyu/testdimokk.git

# 查看远程仓库
git remote -v

# 自定义:
git remote add klausgit https://github.com/KlausLyu/klausgit.git
tarena@tedu:~/klausgit$ git remote -v
klausgit  https://github.com/KlausLyu/klausgit.git (fetch)
klausgit  https://github.com/KlausLyu/klausgit.git (push)

# 默认:
git remote add origin https://github.com/KlausLyu/gitdemo.git
tarena@tedu:~/klausgit$ cd ../gitdemo
tarena@tedu:~/gitdemo$ git remote -v
origin  https://github.com/KlausLyu/gitdemo.git (fetch)
origin  https://github.com/KlausLyu/gitdemo.git (push)

# 删除远程仓库名(不是删除远程仓库,远程仓库网页可直接删除,本地仓库 rm -rf .git)
git remote remove klausLyu

11、远程仓库和本地仓库的同步 ()

# 从远程仓库同步到本地仓库    (上班前download master到本地仓库)
git pull origin master          # master可换成branch名,tag名,分别下载分支或标签

# 从本地仓库提交同步代码到远程仓库(下班前 upload master到远程仓库,也可以只上传分支,master换成分支即可)
git push origin master          # master可换成branch名,tag名,分别上传分支或标签

12、克隆远程仓库到本地目录下—- 先创建远程仓库,再有本地仓库

# 自动生成对应的本地仓库,本地仓库与远程仓库相对应, https://github.com/TryGhost/Ghost.git为目标远程仓库地址
git clone https://github.com/TryGhost/Ghost.git

13、分支

# 创建分支
git branch branch_name              # 语法
git branch dev

# 查看分支
git branch

# 切换分支
git checkout branch_name            # 语法
git checkout dev                    # 会提示:已切换到dev分支

# 创建新分支并切换到该分支
git checkout -b abc                 # ==  (git branch abc; git checkout abc)

# 合并分支,将其他分支合并到当前分支
git merge other_branch_name         # 语法

# 删除分支,删除不需要的分支
git branch -d branch_to_deleted     # 语法
git branch -d abc

两个分支中文件名重复且修改内容不一致怎么办?

冲突提示:...冲突(内容)...
解决方案:
查看冲突:git diff 文件名称
冲突内容“
    <<<<<<<<<<HEAD
        当前分支修改的内容
    ==========
        其他分支修改的内容
    >>>>>>>>>>其他分支名称
手动修改要保存的内容
    git add 文件名称
    git commit -m ''
    got merger 其他分支名称

14、标签

# 创建标签
git tag label_name                  # 默认标签是打在最新提交的commit上的

# 查看标签
git tag                             # 查看当前的所有的标签
git show labe_name                  # 查看标签labe_name的内容

# 对已操作过的commit进行添加标签:
git tag -a 标签名称 -m '标签注释' commit的id

# commit的id方法
git log --pretty=oneline                    # 完整显示commit的id
git log --prett=oneline --abbrev-commit     # id的简写

猜你喜欢

转载自blog.csdn.net/weixin_40040404/article/details/81570822