git使用记录学习

一、Git使用基本操作

配置环境:
1、通过git init命令把某个目录变成Git可以管理的仓库;
2、生成公钥秘钥:ssh key ssh-keygen -t rsa -C “for example@163.com”(邮箱)
3、在GitHub的Setting中配置公钥
3、 关联远程gith的用户名和邮箱
$ git config --global user.name “Your Name”
$ git config --global user.email “email@example.com”
操作:
在这里插入图片描述

1、从分支上拉取远程库的内容:git pull origin dev(分支名称)
2、对项目就行修改
3、把修改后的项目add到本次分支:git add .
4、把本地分支的内容提交到暂存库:git commit -m “注释”
5、把暂存库的内容推送到远程库:git push -u origin dev(分支名称) //前提:在哪个分支目录下就往哪个远程分支推送
6、切换到主分支master:git checkout master(名称)
7、合并分支:git merge dev(分支名称)

删除本地分支:git branch -d [branchname]
删除远程分支: git push origin --delete [branchname]
创建分支 :git checkout -b [branchname]

二、 远程仓库中分支存在

方法一:(已经创建了本地分支)
git branch --set-upstream-to=origin/remote_branch your_branch
//等同于

git branch -u origin/remote_branch your_branch
方法二:(本地分支不存在,本地名称与远程名称不同)

复制代码
git branch new_branch origin/remote_branch
// 或者
git fetch origin remote_branch:new_branch
// 上面👆这两种方法都不会切换当前分支;

// 如果想要创建分支的同时,切换到新分支
git checkout -b new_branch origin/remote_branch
复制代码
方法三:(如果本地有远程分支 origin/name, 想拉取一个本地分支)

// git默认将创建一个同名本地分支,并将本地分支和远程仓库关联
git checkout remote_branch

远程分支不存在
// 如果远程仓库不存在new_remote_branch,将创建一个该分支,并关联local_branch
git push origin local_branch:new_remote_branch

三、git 为什么要先commit,然后pull,最后再push?而不是commit然后直接push?

1,那我本地这个也算是个分支?还是就是一个本地仓库?
**答:**本地和远程的关系相当于两个分支,你感觉一样是因为你git pull 的时候已经自动给绑定好对应关系了, set-upstream…balbala

2,如果我在远程新建了个分支,然后我pull了下来,那我本地到底有分支这个说法吗?我本地的分支是不是就是那个远程新建的分支?
**答:**你远程新建了一个分支拉到本地的道理是一样的,属于复制了一份,但是本地分支和远程分支已经是两个东西了

3,本地仓库和本地分支有什么区别?
**答:**本地分支属于本地仓库里,是包含关系,一个仓库里可以有很多分支

4,commit是提交到本地仓库,然后push,这个push是把所有代码推到远程仓库,还是只是把commit的地方推到远程仓库?
**答:**肯定不会全量推送到远程的,是通过对比 commit 的记录,如果本地高于远程就直接把多出来的commit 给怼上去,如果本地分支的最新版本和远程的 commit 有冲突,就需要解决冲突。

5,那为什么要先commit,然后pull,然后再push,我pull了,岂不是把自己改的代码都给覆盖掉了嘛,因为远程没有我改的代码,我pull,岂不是覆盖了我本地的改动好的地方了?那我还怎么push?
**答:**这个先 commit 再 pull 最后再push 的情况就是为了应对多人合并开发的情况,
commit 是为了告诉 git 我这次提交改了哪些东西,不然你只是改了但是 git 不知道你改了,也就无从判断比较;
pull是为了本地 commit 和远程commit 的对比记录,git 是按照文件的行数操作进行对比的,如果同时操作了某文件的同一行那么就会产生冲突,git 也会把这个冲突给标记出来,这个时候就需要先把和你冲突的那个人拉过来问问保留谁的代码,然后在 git add && git commit && git pull 这三连,再次 pull 一次是为了防止再你们协商的时候另一个人给又提交了一版东西,如果真发生了那流程重复一遍,通常没有冲突的时候就直接给你合并了,不会把你的代码给覆盖掉
出现代码覆盖或者丢失的情况:比如A B两人的代码pull 时候的版本都是1,A在本地提交了2,3并且推送到远程了,B 进行修改的时候没有commit 操作,他先自己写了东西,然后 git pull 这个时候 B 本地版本已经到3了,B 在本地版本3的时候改了 A 写过的代码,再进行了git commit && git push 那么在远程版本中就是4,而且 A 的代码被覆盖了,所以说所有人都要先 commit 再 pull,不然真的会覆盖代码的

6,两个分支A和B,A合并B和B合并A,有区别吗?
**答:**两个互相合并的唯一区别就是 A->B 的时候 B 分支上会产生一个 merge_commit ,被改变的分支是 B ;如果现在没有发生任何改动执行 B->A ,则A和B两分支才会完全相同。

一般工作流程如下:

1、git clone 克隆远程资源到本地目录,作为工作目录;
2、然后在本地的克隆目录上添加或修改文件;
3、如果远程修改了,需要同步远程的内容,直接git pull就可以更新本地的文件;
4、本地在修改之后,可以通过git status 查看修改的文件。然后使用git add 添加修改的文件暂到缓冲区;
5、在添加之后,可以使用git commit添加到当前的工作区;
6、在修改完成后,如果发现错误,可以撤回提交并再次修改并提交;
7、git push将本地的修改推送到远程的git服务器

git 工作流程

一般工作流程如下:

1、git clone 克隆远程资源到本地目录,作为工作目录;

2、然后在本地的克隆目录上添加或修改文件;

3、如果远程修改了,需要同步远程的内容,直接git pull就可以更新本地的文件;

4、本地在修改之后,可以通过git status 查看修改的文件。然后使用git add 添加修改的文件暂到缓冲区;

5、在添加之后,可以使用git commit添加到当前的工作区;

6、在修改完成后,如果发现错误,可以撤回提交并再次修改并提交;

7、git push将本地的修改推送到远程的git服务器。

分支操作:

1、查看分支:

git branch -a

2、创建分支,加上-b上创建完分支后,切换的新的分支工作:

git checkout -b dev

这时候修改的文件都是在dev分支,不会对master分支的文件进行修改。

3、合并分支

git checkout master

git merge dev

如果有冲突会有提示,默认是添加两个分支文件里面的内容,然后Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,修改冲突的文件,然后git add修改后的内容就可以继续提交了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要读取Git提交记录,可以使用Git命令行或者Git API。以下是使用Git命令行读取Git提交记录的步骤: 1. 打开Git Bash或者命令行窗口,进入要读取提交记录Git仓库目录。 2. 执行以下命令以获取所有提交记录: ``` git log ``` 3. 如果想要获取指定分支的提交记录,可以在命令后面添加分支名,例如: ``` git log origin/master ``` 4. 如果想要获取某个时间段内的提交记录,可以使用以下命令: ``` git log --since="2021-01-01" --until="2021-12-31" ``` 以上是使用Git命令行读取Git提交记录的步骤,你可以根据自己的需求进行调整。 ### 回答2: C是计算机编程语言中的一种,也是一种高级语言。C语言于1972年由贝尔实验室的丹尼斯·里奇开发。C语言被广泛应用于软件开发领域,尤其是系统级编程和嵌入式系统开发。 C语言具有简洁、高效的特点,可用于开发各种应用程序,包括操作系统、编译器、数据库和网络协议等。它被称为"中间语言",因为它在低级机器语言和高级编程语言之间有一个很好的平衡点。 C语言的语法相对简单,易于学习使用。它主要基于过程式编程范式,强调程序的顺序执行和模块化开发。C语言具有良好的可移植性,可以在多种操作系统和硬件平台上运行。 C语言提供了丰富的标准库,包括输入输出、字符串处理、内存管理等功能,为程序员提供了丰富的工具和接口。此外,C语言还支持底层操作,如位运算和指针操作,使得程序员能够更好地控制计算机的底层细节。 C语言也是其他编程语言的基础,例如C++和Objective-C等。许多编程语言采用了C语言的语法和结构,并在其基础上进行扩展和改进。因此,学习C语言对于理解和掌握其他编程语言也非常有帮助。 总之,C语言具有高效、简洁和可移植等优点,成为了计算机编程领域中最重要的语言之一。它对于计算机程序员和软件开发人员来说是一种强大的工具,值得深入学习和掌握。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值