Loading

Git操作


1 git语法

1.1 git概念

1 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,不必服务器
端软件支持。
wps1

2 Git工作区、暂存区和版本库概念
工作区:就是你在电脑里能看到的目录。
暂存区:英文叫 stage index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以
我们把暂存区有时也叫作索引(index)。
版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

3 
工作区、版本库中的暂存区和版本库之间的关系
wps2

1.2 git命令帮助

Git的工作就是创建和保存你项目的快照及与之后的快照进行对比。
wps3
workspace # 工作区
staging area # 暂存区/缓存区
local repository # 版本库或本地仓库
remote repository # 远程仓库

wps4

$ git --help
usage: git [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           [--super-prefix=<path>] [--config-env=<name>=<envvar>]
           <command> [<args>]

These are common Git commands used in various situations:

start a working area (see also: git help tutorial)
开始工作区域
   clone     Clone a repository into a new directory
将存储库克隆到新目录,拷贝一份远程仓库,也就是下载一个项目。
   init      Create an empty Git repository or reinitialize an existing one
创建一个空的Git存储库或重新初始化现有存储库。

work on the current change (see also: git help everyday)
处理当前变化
   add       Add file contents to the index
将修改从本地工作区添加至暂存区。

已经纳入版本控制
   mv        Move or rename a file, a directory, or a symlink
移动或重命名工作区中的文件、目录或符号链接,同时将改变添加到暂存区(git mv相当于mv + git
add两个命令)
   restore   Restore working tree files
撤销工作区文件修改的内容。
--staged表示把文件从暂存区恢复到工作区,不会撤销文件修改的内容。
   rm        Remove files from the working tree and from the index
删除工作区中的文件,同时将删除的文件添加到暂存区(git rm相当于rm + git add两个命令)
--cached 表示保留工作区中的文件,并将此次删除提交到暂存区。
-r 表示删除工作区中的文件夹。
-f 表示强制删除工作区中的文件。

examine the history and state (see also: git help revisions)
检查历史和状态
   bisect    Use binary search to find the commit that introduced a bug

   diff      Show changes between commits, commit and working tree, etc
查看比较某文件修改内容的不同之处。
   grep      Print lines matching a pattern

   log       Show commit logs
查看提交到版本库的修改日志。
   show      Show various types of objects

   status    Show the working tree status
显示工作区和暂存区的状态。
对空目录不会跟踪。
当工作区和版本库之间存在差异时状态就会发生改变。

grow, mark and tweak your common history
成长、标记和调整你的共同历史
   branch    List, create, or delete branches
列出、创建或删除分支。
   commit    Record changes to the repository
将修改从暂存区提交至本地版本库。
-m后加注释,表示注释此次提交的内容。
--amend 表示提交的注释内容需要修改时,此参数可以修改提交的注释内容。
   merge     Join two or more development histories together
将两个或多个分支合并在一起。
   rebase    Reapply commits on top of another base tip

   reset     Reset current HEAD to the specified state

   switch    Switch branches
切换分支。
   tag       Create, list, delete or verify a tag object signed with GPG
为分支打标签(版本号)

collaborate (see also: git help workflows)
合作
   fetch     Download objects and refs from another repository

   pull      Fetch from and integrate with another repository or a local branch
从远程获取代码并合并本地的版本。
   push      Update remote refs along with associated objects
将本地的分支版本上传到远程并合并。

'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.

See 'git help git' for an overview of the system.

1.3 git状态

1 Git在提交之前,存在的3种状态
(1) Untracked files (未跟踪的文件)
工作区中新创建的文件。

(2) Changes not staged for commit (未暂存提交的更改)
提交到本地版本库后在工作区中发生修改的文件。

(3) Changes to be committed (待提交的变更)
在暂存区中的文件。

2 Git提交后的状态
nothing to commit, working tree clean (无需提交,工作树干净)
工作区和版本库内容相同,无任何差异。

 

 

2 git安装

" https://git-scm.com/downloads"网站根据需求下载macOSWindowsLinux/Unix版本的Git
我这里下载的是Windows版本的Git,下载地址如下。
https://github.com/git-for-windows/git/releases/download/v2.39.2.windows.1/Git-2.39.2-64-bit.exe
下载完成后双击安装,一路回车即可。
安装完成后查看git版本,如下可以正确显示git版本,说明git安装成功。
wps5
wps6

3 git基本操作

3.1 版本库使用流程

1 配置全局用户名和邮箱(~/.gitconfig)
git config --global user.email "<your email address>"
git config --global user.name "<your name>"

补充:
(1) 去除"--global"参数表示设置当前仓库的标识(.git/config)
(2) 查看配置信息
1) 查看全局仓库的配置信息
# git config --global --list
2) 查看当前仓库的配置信息
# git config --list

2 从远程仓库克隆你的项目
git clone <项目地址>

3 将修改从本地工作区添加至暂存区
git add <文件名> # 将指定修改的文件从本地工作区添加至暂存区
git add . # 将所有修改从本地工作区添加至暂存区
wps7

4 完成工作后将修改从暂存区提交至本地版本库,并使用"-m"选项说明完成的工作
git commit -m '<describe content>'

5 将本地版本库推送至远程仓库
git push

3.2 在版本库中删除文件

1 删除工作区中的文件,同时将删除的文件添加到暂存区
git rm index.php
git status
git commit -m 'rm index.php'

2 保留工作区中的文件,并将此次删除提交到暂存区
git rm --cached readme.txt
git status
git commit -m 'delete readme.txt'

3.3 在版本库中修改文件的名称

1 重命名工作区中的文件,同时将改变添加到暂存区
git mv test.html index.html
git status
git commit -m 'test.html rename index.html'

3.4 使用log查看git提交到版本库的操作日志

1 查看当前分支提交到版本库的修改日志
git log

2 查看最近2次提交日志并显示文件差异
git log -p -2

3 显示已修改的文件清单
git log --name-only

4 显示新增、修改、删除的文件清单
git log --name-status

5 一行显示并只显示SHA-1的前几个字符
git log --oneline

6 自定义的精简日志信息
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

3.5 使用amend修改最新一次提交到版本库的事件

1 修改提交描述信息
git log
git commit --amend
git log

2 实现将暂存区中的文件跟最新一次提交进行合并提交。

3.6 管理暂存区中的文件

1 将所有修改从本地工作区添加至暂存区
git add .

2 撤销没有提交到本地仓库且第一次放到暂存区中的文件(保留修改的内容)
git restore --staged <file>
git status

3 撤销提交到本地仓库后在工作区中修改的文件(不保留修改的内容)
git restore <file>
git status

4 撤销提交到本地仓库后在工作区中修改后放到暂存区中的文件(保留修改的内容)
git restore --staged <file>
git status

3.7 alias命令别名提高Git操作效率

1 方式一: git配置文件中修改
说明: 可以在全局配置文件中修改,也可以在项目的配置文件中修改。
cd ~
subl .gitconfig  # 补充: 使用subl命令需要在windows环境变量中添加"Sublime Text"软件的执行路径。
....(省略的内容)
[alias]
    a = add
    c = commit
    l = log
    s = status
    b = branch

: 
配置后立即生效

2 方式二: 在当前用户的profile文件中修改
cd ~
subl
 .bash_profile
alias gs="git status"
alias gc="git commit -m "
alias gl="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
alias gb="git branch"
alias ga="git add -A"
alias go="git checkout"
alias gp="git push;git push github"

source ~/.bash_profile

3.8 分支branch基本管理操作

1 分支说明
分支用于为项目增加新功能或修复Bug时使用。大部分情况下不会直接在master分支工作,我
们应该保护该分支,这个分支是最终开发完成代码健康可交付运行的。所以功能和缺陷(bug)
复都会新建分支完成,除了这个概念外与基本流程使用是一样的。
增加新功能或修复bug时需要先切换到干净的master分支后再创建新的分支并切换到新创建的
分支,完成工作后将新分支合并到master分支,然后再删除新分支。

2 常用命令
# cd ~/git/
# mkdir -p hd/ && cd hd/
# git init

(1) 查看分支
git branch

提示: 此时不会查看到任何分支,因为没有任何的提交,主分支也不存在。
# touch xj.php && git add . && git commit -m 'first'
# git branch
* master # 星号(*)表示当前所在分支的指针
# ls
xj.php

(2) 创建分支
git branch ask
# git branch
ask
* master

(3) 切换分支
git checkout ask
# git branch
* ask
master
# touch ask.html
# git add . && git commit -m 'add ask.html'
# ls
ask.html  xj.php

(4) 创建并切换分支
git checkout master
git checkout -b bbs
# git branch
ask
* bbs
master
# ls
xj.php

(5) 将分支main更新为master
git branch -m main master

(6) 删除远程分支
git push origin :dev

3.9 分支的合并与删除

根据上面"3.8 分支branch基本管理操作"示例进行下面的实验操作。

wps8

1 合并ask分支到master
git checkout master
git merge ask
wps9

2 删除已经合并的ask分支
git branch -d
ask
wps10

3.10 正确处理分支冲突

1 分支冲突产生的原因
不同分支修改同一个文件或不同开发者修改同一个分支文件都可能造成分支冲突,无法提交代码。

2 解决办法
(1) 使用编辑器修改冲突的文件。
(2) 添加暂存(git add .)表示已经解决冲突。
(3) git commit -m 'describe content' 提交完成。

3 解决分支冲突示例
(1) 生成master分支
# cd ~/git
# mkdir -p hd/ && cd hd/
# git init
# echo "master" > xj.php
# git add . && git commit -m 'master'
# git branch
* master

(2) 创建ask分支
# git branch ask
# git branch
ask
* master

(3) 创建bbs分支
# git branch bbs
# git branch
ask
bbs
* master

(4) ask分支中修改xj.php文件内容
# git checkout ask
# git branch
* ask
bbs
master

# echo "ask" > xj.php
# git add . && git commit -m 'ask'

(5) bbs分支中修改xj.php文件内容
# git checkout bbs
# git branch
ask
* bbs
master

# echo "bbs" > xj.php
# git add . && git commit -m 'bbs'

(6) 合并askbbs分支到master分支
# git checkout master
wps11
可以看到在合并bbs分支到master分支时产生了冲突。

(7) 解决冲突
产生分支合并冲突时git无法自动进行处理,需要人为进行手动处理,因为系统不知道产生冲突
的代码需要保留哪一个。我这里选择将askbbs分支的修改内容都进行保留。
wps12

3.11 分支管理--merged--no-merged及分支强制删除操作

根据上面"3.10解决分支冲突"示例进行下面的实验操作。

1 查看已经合并的分支(切换到master)
git checkout master
git branch --merged
wps13

2 查看未合并的分支(切换到master)
git checkout master
git branch --no-merged
wps14
提示: 生产中删除已经合并到master的分支,没有合并到master的分支不要删除,避免工作重做。

3 删除没有合并的分支(切换到master)
git checkout master
git branch -D
test
wps15

3.12 .gitignore定义忽略提交的文件

1 说明
(1) 所有空行或者以注释符号(#)开头的行都会被Git忽略。
(2) 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
(3) 可以使用标准的glob模式匹配。

2 示例
*.txt # 忽略所有以.txt结尾的文件。
!a.txt # .txt
结尾的文件中a.txt不会被忽略。

/vendor # 忽略目录vendor

3.13 windowsgit bash中文乱码解决

1 git bash的终端命令行中,使用git status查看状态时,如果存在中文名称的文件,则展示时
会以中文字符编码的形式展示,如下图所示
wps16

2 解决步骤
(1) 设置引用路径的值为false
# git config --global core.quotepath false

(2) 设置git bash终端的编码为UTF-8
1) git bash的空白处右键,选择Options
2) Text(中文是文本)下的Local设置为zh_CN,字符集选中为UTF-8,点击Save保存设置。
wps17

(3)
验证,中文乱码问题结局
wps18

3.14 windowsgit add换行符问题

1 问题说明
windows平台进行git add时,控制台打印如下警告:
"warning: in the working copy of 'xx.php', LF will be replaced by CRLF the next time Git touches it"
警告:在xx.php”的工作副本中,下次Git接触LF时,LF将被CRLF替换

2 问题分析
Dos/Windows平台默认换行符:回车(CR)+换行(LF),即"\r\n"
Mac/Linux平台默认换行符:换行(LF),即"\n"
企业服务器一般都是Linux系统进行管理,所以会有替换换行符的需求。

2 解决方法
(
1) git config --global core.autocrlf true
适用于Windows系统,且一般为Windows默认设置,会在提交时对换行符进行CRLF - LF的转换,检出时又会
进行LF - CRLF的转换。

(2) git config --global core.autocrlf input
适用于Linux系统,会在提交时对换行符进行CRLF - LF的转换,检出时不会进行LF - CRLF的转换。

(
3) git config --global core.autocrlf false
适用于Windows系统,且只在Windows上开发的情况,在提交、检出时不会对CRLF/LF换行符进行转换。

3 总结
(1) 如果我们目前是Window平台并出现该警告,啥也别做就行,虽然这个警告难看,但这个警告
能保证我们项目团队正常跨系统git操作代码。
gitWindows客户端基本都会默认设置core.autocrlf=true
(2) 跨平台文件都有兼容性的问题,为什么只有core.autocrlf参数设置true检出时,会有LF-CRLF
的转换
1) Linux文件在Windows下会显示成一行。
2) 
Windows文件在Linux下结尾可能多出^M符号。

4 git进阶

4.1 标准的分支操作工作流

1 master分支
干净、稳定、可信赖的分支。
2 develop分支
开发过程中的分支,新增功能和修复功能的分支从该分支创建。
develop分支可以看做是master分支的保镖,起到防火墙的作用。
3 开发者
(1) 把功能分支检出到自己的本地电脑。
(2) 在本地电脑中为功能分支增加新的分支完成开发任务。
(3) 将新增的分支合并到检出的功能分支中。
(4) 提交功能分支到远程仓库。
(5) 合并功能分支到develop分支中。
(6) develop分支进行测试。
(7) develop分支合并到master分支。

4.2 stash临时储存区

说明:
新建文件git add之后或git commit之后修改的文件才能使用stash功能,将该文件的变化存储到stash
临时储存区并撤销修改操作,需要时再将stash临时储存区的文件修改进行恢复,然后删除stash临时
储存区。

使用场景:
当在一个分支的开发工作未完成,却又要切换到另外一个分支进行开发的时候,可以先将自己写好的
代码储存到git栈,然后进行另外一个分支的代码开发,这时候git stash命令就派上用场了。

4.2.1 纳入到版本库的文件(文件内容变化)

1 环境准备
# cd ~/git/ && mkdir -p hd/ && cd hd/ && git init
# touch master.php && git add . && git commit -m "master commit"
wps19

2 创建分支
# git branch ask
# git branch bbs
wps20

3 切换到ask分支操作
# git checkout ask
# 创建文件并提交
# touch ask.php && git add . && git commit -m 'ask commit'
# 修改文件
# echo 'ask modify' >> ask.php
# 切换到bbs分支进行操作
# git checkout bbs

wps21
: 因为纳入版本库的ask.php文件修改后,还没有提交到本地仓库,所以不允许切换到其它的
分支。

4 储存ask分支
# 储存当前ask分支
# git stash
# 查看储存的分支
# git stash list
wps22
: 切换到bbs分支成功,在bbs分支中完成工作并提交。

5 切换到ask分支恢复分支储存区
# git checkout ask
# git stash apply stash@{0}  # 0表示最新的操作
: 恢复分支储存区后分支储存区还依然存在
wps23
: 分支储存区恢复完成,继续修改文件,完成开发工作后提交即可。

6 删除分支储存区
# git stash drop stash@{0}
wps24

4.2.2 新创建的文件(文件变化)

1 环境准备
# cd ~/git/ && mkdir -p hd/ && cd hd/ && git init
# touch master.php && git add . && git commit -m "master commit"
wps25

2 创建分支
# git branch ask
# git branch bbs
wps26

3 切换到ask分支操作
# git checkout ask
# 创建文件并提交
# touch ask.php && git add . && git commit -m 'ask commit'
wps27
wps28
: 切换到bbs分支成功,在bbs分支中完成工作并提交。

4 切换到ask分支恢复分支储存区
wps29
: 分支储存区恢复完成,但是此时还不能修改文件,因为文件还在暂存区中。

5 恢复暂存区中的文件到工作区
wps30
: 恢复暂存区中的文件到工作区完成,继续修改文件,完成开发工作后提交即可。

6 删除分支储存区
wps31

4.3 使用TAG标签声明项目阶段版本

Git可以对分支某一时间点打上标签,用于发布软件版本,如v1.0

1 在本地仓库中添加标签(任何分支上)
git tag v1.0

2 列出本地仓库中的所有标签
git tag

3 推送本地仓库中新增的标签到远程仓库
git push origin --tags

4 删除本地仓库中的标签
git tag -d v1.0

5 删除远程仓库中的标签
git push origin -d v1.0

4.4 生成zip代码发布压缩包

mster 分支代码生成压缩包供使用者下载使用,--prefix 指定目录名
git archive master --prefix='lc/' --format=zip > lc.zip

4.5 rebase合理的优化分支合并

参考文档:

https://blog.csdn.net/weixin_42310154/article/details/119004977

总结:

无论是个人单机开发,还是公司协作开发,只要没有特殊需求,用merge准没错!!!

 

不管是拉代码还是push代码统一都使用merge,虽然会多出无意义的一条提交记录

Merge to …”,但至少能清楚地知道主线上谁合了的代码以及他们合代码的时

间先后顺序。

4.6 使用SSHGITHUB远程服务器进行无密码连接

github仓库克隆代码,github仓库有提交,github远程仓库作为主角。

1 创建github仓库,有初次提交

wps32 

 

wps33 

 

2 GitBash中生成ssh秘钥对

# ssh-keygen -t rsa  # 一路回车即可完成秘钥对的创建
# cd ~/.ssh/
# ls
id_rsa  id_rsa.pub
: id_rsa是私钥,id_rsa.pub是公钥

 

3 复制公钥内容到github

# subl id_rsa.pub
# 添加步骤
github头像 -> Settings -> SSH and GPG keys -> New SSH key
# 添加完成如下
wps34

 

4 使用ssh方式克隆github仓库

wps35

# mkdir -p ~/git/ && cd ~/git/
# git clone git@github.com:HyjyLc/liuc.git  # 本地仓库已经和远程github仓库自动关联了

 

5 github仓库推送数据

# cd ~/git/liuc/
# touch index.html
# git add . && git commit -m "add index.html"
# git push

wps36

4.7 本地版本库主动使用remote与远程GITHUB进行关联

从本地仓库往github仓库推送代码,github仓库没有任何提交,本地仓库作为主角。

1 创建github仓库,没有初次提交

wps37 

 

2 本地仓库关联远程github仓库命令

wps38

(1) or create a new repository on the command line
…或在命令行上创建一个新的存储库
1) 创建本地仓库并完成初始提交
git init
echo "# liuch" >> README.md
git add README.md
git commit -m "first commit"
2) 添加远程仓库
git branch -M master
git remote add origin git@github.com:HyjyLc/liuch.git
3) 查看远程仓库
git remote -v
4) 推送数据到远程仓库
git push -u origin master

(2) or push an existing repository from the command line
…或从命令行推送现有存储库
1) 添加远程仓库
git remote add origin git@github.com:HyjyLc/liuch.git
git branch -M master
2) 推送数据到远程仓库
git push -u origin master

(3) 说明
1) git branch -m | -M oldbranch newbranch
重命名分支,如果newbranch名字已经存在,则需要使用-M强制重命名,否则使用-m进行重命名。
git branch -m | -M newbranch  # 
表示重命名当前的分支。
2) git remote rm origin
删除远程仓库关联
3) cat ~/git/liuch/.git/config
[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
# 远程仓库配置项
[remote "origin"] # 远程仓库的标识符
        url = git@github.com:HyjyLc/liuch.git # 远程仓库的ssh连接地址或https连接地址
        fetch = +refs/heads/*:refs/remotes/origin/*
# 本地分支与远程分支关联配置项(本地分支名称必须和远程分支名称相同)
[branch "master"] # 本地仓库当前所在的分支
        remote = origin # 远程主机标识,可以在命令行被覆盖
        merge = refs/heads/master # 
远程主机仓库所在的分支

4.8 本地分支与GITHUB远程分支同步

环境:

wps39 

 

wps40 

1 查看分支命令

(1) git branch
查看本地仓库所有分支
(2) git branch -r
查看远程仓库所有分支
(3) git branch -a
查看本地仓库和远程仓库所有分支

2 git pull

在分布式管理系统中,如果两个人同时修改了本地文件,并且其中一人将改动 push 到中央仓库,
那么第二个人在向中央仓库 push 本地文件时就会产生错误。这时可以先将中央仓库的代码下载
到本地仓库然后合并。
wps41
wps42

但是,对于本地仓库与中央仓库的合并要具体情况具体分析。如果本地仓库与中央仓库在不同的
文件上有区别,那么可以使用 git pull 直接合并。这里要说一下 git pull 这个命令,这个命令可以
简单理解为 git fetch + git merge ,也就是从中央仓库下载代码然后自动合并。
由于同一个文件的冲突在 git 中无法自动合并,所以当中央仓库与本地仓库因为一个文件产生冲
突时,git 无法做到自动合并。这时使用 git pull 命令就会产生如下错误。
Automatic merge failed; fix conflicts and then commit the result.
这时应该借助其他工具如 git mergetool 对同一个文件的内容冲突进行合并。

命令格式:
git checkout <本地分支名>
git pull <远程主机名> <远程分支名>

(1) 拉取origin主机的ask分支与当前分支合并

# git pull origin ask

 

wps43 

(2) 直接将远程分支拉取到本地(在本地创建分支并拉取数据)

wps44 

 

# 会自动将本地分支和远程分支关联

wps45 

3 git push

git push 命令用于从将本地的分支版本上传到远程并合并。

命令格式如下:
git push <远程主机名> <本地分支名>:<远程分支名>

如果本地分支名与远程分支名相同,则可以省略冒号:
git push <远程主机名> <本地分支名>

如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数(不推荐使用):
git push --force origin <本地分支名>
:<远程分支名>

(1) 将本地bbs分支推送到origin主机上对应同名的分支(远程分支不存在会自动创建)

# git push origin bbs

wps46 

(2) 将本地bbs分支推送到origin远程主机上的ask分支

# git push origin bbs:ask -f

#强制推送,覆盖服务器端分支仓库(慎用)

wps47 

 

正确操作:

# git checkout bbs

# git pull origin ask

# git push origin bbs:ask

4 delete branch

# 删除远程origin主机上的ask分支

# git push origin --delete ask

wps48 

5 将本地分支与远程分支关联起来

将本地的 ask 分支与远程的 ask 分支关联起来,这样在ask分支下进行推送和拉取操作中,可以直接

使用git push git pull 命令,而无需再指定分支名称和远程仓库。

(1) 添加方式一(推送时进行关联)

# git push --set-upstream origin ask

# git push -u origin ask

: -u  --set-upstream 的缩写。

 

wps49 

 

(2) 添加方式二(只关联不进行推送)

# git branch --set-upstream-to=origin/<branch> ask

 

wps50 

4.10 多库提交

我可以将代码提交到多个远程版本库中,比如将代码提交到了 Github Gitee 两个库中。

1 前提

(1) githubgitee 仓库上都添加了本地开发电脑的ssh公钥。

(2) gitee 上将 github 上的仓库进行导入操作。

 

2 拉取 github 上的仓库

# cd ~/git/

# git clone git@github.com:HyjyLc/liuc.git

# cd liuc/

# cat .git/config

wps51 

 

3 增加 gitee 仓库

# git remote add gitee git@gitee.com:liuchang-space/liuc.git

# cat .git/config

wps52 

:

origin 用于标识 github 远程仓库(默认)

gitee 用于标识 gitee 远程仓库

 

4 提交代码到远程仓库

本地分支已经和远程分支进行了关联,可以在本地仓库当前分支使用git pullgit push 进行操作。

 

可以在 '~/.bashrc' 文件中定义别名,下面是定义的别名。这时使用 gp 将同时提供到 github

giteealias gp="git push & git push gitee"

wps53 

 

5 在远程仓库进行验证

(1) github仓库

wps54 

 

(2) gitee仓库

wps55 

4.11 撤销mastermerge操作

# git checkout master      # 切换到master分支

# git reset --hard <提交点> # 根据提交日志中的提交点进行还原

wps56 

4.12 补充

1 在本地仓库的当前分支进行操作时要先执行 git pull 命令进行更新操作。

posted @ 2023-04-13 11:15  云起时。  阅读(96)  评论(0编辑  收藏  举报