mageboo

导航

git使用(3)

远程仓库

1.本文使用gitee作为远程仓库,首先创建仓库

2.将本地仓库与远程的空仓库进行关联,并将本地仓库的提交内容推送到远程仓库(由于之前已经设置过账号密码,以下内容中并没有输入账号密码的提示,如果未设置过账号密码,在推送时可能会提示输入gitee账号和密码)

[root@baseserver gittest]# touch README.md      ##创建readme.md
[root@baseserver gittest]# git status           ##查看仓库状态
位于分支 master
未跟踪的文件:
  (使用 "git add <文件>..." 以包含要提交的内容)

        README.md

提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
[root@baseserver gittest]# git add README.md   ##加入提交
[root@baseserver gittest]# git commit -m "readme.md"   ##提交新建文件
[master e9639ce] readme.md
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README.md
[root@baseserver gittest]# git remote add origin https://gitee.com/xxxxxx/gittest.git   ##与远程仓库进行关联,后面的地址是创建好的远程仓库的地址
[root@baseserver gittest]# git push -u origin "master"    ##将本地仓库内容推送至远程仓库
对象计数中: 21, 完成.
压缩对象中: 100% (12/12), 完成.
写入对象中: 100% (21/21), 1.62 KiB | 0 bytes/s, 完成.
Total 21 (delta 2), reused 0 (delta 0)
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag 294def95
To https://gitee.com/xxxxxx/gittest.git
 * [new branch]      master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。

3.刷新gitee页面,发现本地内容已提交到远程仓库

删除远程仓库(解除与远程仓库的关联,并没有物理删除远程仓库)

[root@baseserver gittest]# git remote -v      ##查看远程仓库信息
origin  https://gitee.com/xxxxxx/gittest.git (fetch)
origin  https://gitee.com/xxxxxx/gittest.git (push)
[root@baseserver gittest]# git remote rm origin   ##删除与origin的关联
[root@baseserver gittest]# git push -u origin master  ##尝试推送,未成功
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

从远程仓库中克隆

[root@baseserver git3]# git clone https://gitee.com/xxxxxx/gittest.git   ##克隆命令
正克隆到 'gittest'...
remote: Enumerating objects: 27, done.
remote: Counting objects: 100% (27/27), done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 27 (delta 4), reused 0 (delta 0), pack-reused 0
展开对象中: 100% (27/27), 完成.
检查连接... 完成。
[root@baseserver git3]# ll
总用量 0
drwxr-xr-x. 3 root root 68 12月 26 15:18 gittest
[root@baseserver git3]# cd gittest/
[root@baseserver gittest]# ll
总用量 8
-rw-r--r--. 1 root root   0 12月 26 15:18 README.md
-rw-r--r--. 1 root root  22 12月 26 15:18 test2.txt
-rw-r--r--. 1 root root 149 12月 26 15:18 test.txt

分支管理

1.创建分支

[root@baseserver gittest]# git branch                 ##查看分支
* master
[root@baseserver gittest]# git checkout -b dev        ##创建并切换到dev分支,-b表示创建并切换
切换到一个新分支 'dev'
[root@baseserver gittest]# git branch                 ##*表示当前指针指向的分支
* dev
  master

2.合并分支

[root@baseserver gittest]# vi test.txt       ##使用vi打开test.txt,修改文件内容并保存
[root@baseserver gittest]# git status        ##查看仓库状态
位于分支 dev
尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

        修改:     test.txt

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
[root@baseserver gittest]# git add test.txt  ##加入提交
[root@baseserver gittest]# git commit -m "update test dev"  ##提交更新
[dev 6c5c043] update test dev
 1 file changed, 1 insertion(+)
[root@baseserver gittest]# git checkout master  ##切换分支到master
切换到分支 'master'
您的分支与上游分支 'origin/master' 一致。
[root@baseserver gittest]# git merge dev        ##将dev分支上的内容合并到master
更新 9b7a206..6c5c043
Fast-forward
 test.txt | 1 +
 1 file changed, 1 insertion(+)
[root@baseserver gittest]# git status
位于分支 master
您的分支领先 'origin/master' 共 1 个提交。
  (使用 "git push" 来发布您的本地提交)
nothing to commit, working tree clean
[root@baseserver gittest]# git push -u origin master   ##将合并后的分支推送到远程仓库
对象计数中: 3, 完成.
压缩对象中: 100% (3/3), 完成.
写入对象中: 100% (3/3), 332 bytes | 0 bytes/s, 完成.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag 3747aeb4
To https://gitee.com/xxxxxx/gittest.git
   9b7a206..6c5c043  master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。

3.删除分支

[root@baseserver gittest]# git branch -d dev      ##删除dev分支
已删除分支 dev(曾为 6c5c043)。
[root@baseserver gittest]# git branch
* master

4.解决冲突

[root@baseserver gittest]# git merge dev    ##执行merge命令,产生冲突
自动合并 test.txt
冲突(内容):合并冲突于 test.txt
自动合并失败,修正冲突然后提交修正的结果。
[root@baseserver gittest]# git status       ##查看具体冲突文件
位于分支 master
您的分支领先 'origin/master' 共 1 个提交。
  (使用 "git push" 来发布您的本地提交)
您有尚未合并的路径。
  (解决冲突并运行 "git commit")
  (use "git merge --abort" to abort the merge)

未合并的路径:
  (使用 "git add <文件>..." 标记解决方案)

        双方修改:   test.txt

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
[root@baseserver gittest]# git add test.txt              ##解决冲突内容后,加入提交
[root@baseserver gittest]# git commit -m "merge conflict"   ##提交修改内容
[master 0635a6c] merge conflict
[root@baseserver gittest]# git push -u origin            ##推送至远程仓库
对象计数中: 9, 完成.
压缩对象中: 100% (9/9), 完成.
写入对象中: 100% (9/9), 864 bytes | 0 bytes/s, 完成.
Total 9 (delta 4), reused 0 (delta 0)
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag 8d4f60af
To https://gitee.com/xxxxxx/gittest.git
   6c5c043..0635a6c  master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。

5.冲突文件,Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容

<<<<<<< HEAD    ##指当前分支
7744
=======
44
66
>>>>>>> dev

6.git log查看实际提交及解决冲突过程

[root@baseserver gittest]# git log --graph --pretty=oneline --abbrev-commit
*   ea111f7 commit any
|\  
| * 498f711 update dev2
* | 859506f update master2
|/  
*   0635a6c merge conflict
|\  
| * fea0604 commit dev
* | 35c4267 commit 2
|/  
* 6c5c043 update test dev
* 9b7a206 test2
* acc96de 22
* e9639ce readme.md
* 286201d add test2:
* a91f086 update next
* f213330 udpate2
* f8f70ba another update
* 42508c1 修改test.txt
* d6c1695 添加test.txt

posted on 2024-12-26 15:05  mageboo  阅读(28)  评论(0)    收藏  举报