Git拉取代吗配置以及常见命令

Git拉取代吗配置以及常见命令一 Git 介绍 Git 是一个开源的分布式版本控制系统 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件 工作区 就是你在电脑里能看到的目录 暂存区 英文叫 stage 或 index 一般存放在 git 目录下 下的 index 文件

大家好,我是讯享网,很高兴认识大家。

一 Git介绍

Git是一个开源的分布式版本控制系统,是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

工作区:就是你在电脑里能看到的目录。

暂存区:英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H6ctTQUj-28)(file:///gitpic\wps134A.tmp.png)]

二 本地仓库

1 基本使用

1)安装git

如果是ubuntu系统,采用如下命令:sudo apt-get install git

如果是Windows系统, 直接安装相关的git程序

2)配置用户和邮箱

git config --global user.name "renr" git config --global user.email "@aliyun.com" 

讯享网

3)创建本地仓库的文件夹

讯享网mkdir git_repository 

4)初始化仓库,切换到仓库文件夹

cd git_repository(Git905) git init 

初始化空仓库后,会生成一个.git目录

5)添加文件到仓库

讯享网新建一个hello.txt,然后 git add hello.txt 添加到暂存区 git commit -m “new” 提交更改 git checkout -- haha.txt 撤销修改 git reset HEAD haha.txt 添加过进行撤销操作 

其中,git add把文件添加进去,实际上就是把文件修改添加到暂存区;

用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改

注意:如果是在仓库外建立文件,并添加,会提示错误

renr@renr-virtual-machine:~$ git add haha.txt fatal: Not a git repository (or any of the parent directories): .git 或者 renr@renr-virtual-machine:~/git_repository$ git add ../haha.txt fatal: ../haha.txt:'../haha.txt' 在仓库之外 

2 其他命令

1)git status

对文件进行修改,通过git status查看状态

讯享网renr@renr-virtual-machine:~/git_repository$ vim haha.txt renr@renr-virtual-machine:~/git_repository$ git status 位于分支 master 尚未暂存以备提交的变更: (使用 "git add <文件>..." 更新要提交的内容) (使用 "git checkout -- <文件>..." 丢弃工作区的改动) 修改: haha.txt 修改尚未加入提交(使用 "git add" 和/或 "git commit -a"

2)git diff

对比查看修改什么内容

renr@renr-virtual-machine:~/git_repository$ git diff haha.txt diff --git a/haha.txt b/haha.txt index 1d39138..c4c87d9  --- a/haha.txt +++ b/haha.txt @@ -1,3 +1,6 @@ hello world + +buhao +caiguai 

3) git log

查看修改的历史记录

讯享网git log 

4)git reset

回退到上一个版本

git reset --hard HEAD^ 

如果是windows系统,^有特殊意思,该命令需要写为:

讯享网git reset --hard “HEAD^” 

还可以使用:

git reset --hard HEAD~ 或者 git reset --hard HEAD~1 

​ ~ 后面的数字表示回退几次提交,默认是一次

根据版本号到一个版本

讯享网renr@renr-virtual-machine:~/git_repository$ git reset --hard b1aeb21 

HEAD 现在位于 b1aeb21 insert info

使用该方式,可以实现前进到一个指定版本

5)git reflog

查看执行的每次的命令

renr@renr-virtual-machine:~/git_repository$ git reflog b1aeb21 HEAD@{ 
   0}: reset: moving to b1aeb21 a35e20d HEAD@{ 
   1}: reset: moving to HEAD^ b1aeb21 HEAD@{ 
   2}: commit: insert info a35e20d HEAD@{ 
   3}: commit (initial): write haha.txt 

6)如何丢弃修改

修改,但是还没add时,使用status可以查看到如何丢弃

讯享网renr@renr-virtual-machine:~/git_repository$ vim haha.txt renr@renr-virtual-machine:~/git_repository$ git status 位于分支 master 尚未暂存以备提交的变更: (使用 "git add <文件>..." 更新要提交的内容) (使用 "git checkout -- <文件>..." 丢弃工作区的改动) 修改: haha.txt 修改尚未加入提交(使用 "git add" 和/或 "git commit -a") renr@renr-virtual-machine:~/git_repository$ git checkout -- haha.txt 

修改后,add后,提交到暂存区,如果取消修改,使用reset


讯享网

renr@renr-virtual-machine:~/git_repository$ vim haha.txt renr@renr-virtual-machine:~/git_repository$ git add haha.txt renr@renr-virtual-machine:~/git_repository$ git status 位于分支 master 要提交的变更: (使用 "git reset HEAD <文件>..." 以取消暂存) 修改: haha.txt renr@renr-virtual-machine:~/git_repository$ git reset HEAD haha.txt 

三 连接远程github中的仓库

1 建远程仓库

在github上建立仓库,默认会生成一个readme文件

注意看Readme文件中的提示

2 使用https连接

设置远程仓库地址

讯享网renr@renr-virtual-machine:~/git_repo$ git remote add origin https://github.com/renr1981/git_repo.git 

注意:使用该连接方式,每次推送时,会要求输入github的用户名和密码

向远程库推送数据

renr@renr-virtual-machine:~/git_repository$ git push -u origin master Username for 'https://github.com':  Password for 'https://@github.com': 对象计数中: 17, 完成. 压缩对象中: 100% (9/9), 完成. 写入对象中: 100% (17/17), 1.37 KiB | 0 bytes/s, 完成. Total 17 (delta 0), reused 0 (delta 0) To https://github.com/renr1981/git_repo.git * [new branch] master -> master 分支 master 设置为跟踪来自 origin 的远程分支 master。 

3 使用ssh(Secure Shell)连接

1) 在家目录下创建ssh key(会生成公钥和私钥文件),邮箱使用github账户

注意:如果使用ssh连接,需要进行该配置

讯享网renr@renr-virtual-machine:~$ ssh-keygen -t rsa -C "" Generating public/private rsa key pair. Enter file in which to save the key (/home/renr/.ssh/id_rsa): Created directory '/home/renr/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/renr/.ssh/id_rsa. Your public key has been saved in /home/renr/.ssh/id_rsa.pub. The key fingerprint is: SHA256:QzyEYlYWzJNweoBZSxGxWGksHxn0fhFTNC8LYB1bKRQ  The key's randomart image is: +---[RSA 2048]----+ | %%BE==. | | ++XX*+o=.o | | .*+oo.B.. . | | .o . + o | | . S . | | . . | | | | | | | +----[SHA256]-----+ 

2) Github中设置key,key的内容来自.ssh/id_rsa.pub

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fijQcYqa-30)(file:///gitpic\wps13E7.tmp.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TIzpvgTJ-31)(file:///gitpic\wps1446.tmp.jpg)]

3) 本地库与远程库关联

renr@renr-virtual-machine:~/git_repo$ git remote add origin :renr1981/git_repo.git 

4 推送本地更新

第一次推送时:

讯享网git push -u origin master 

-u参数,把本地的master分支内容推送的远程新的master分支,并把本地的master分支和远程的master分支关联起来

关联后,只要本地修改并提交,就可以通过如下命令进行吐送

git push origin master 

有时可能会产生冲突,就可以进行强制推送

讯享网git push -f origin master -f表示强制推送 

5 修改远程仓库地址

方法一:

git remote rm origin git remote add origin :XXX/XXX.git 

方法二:

讯享网git remote origin set-url <URL> 

把替换成新的url地址。

方法三:

直接修改.git/config文件

四 克隆远程库

1先在远程建立库

2 远程库克隆:git clone

renr@renr-virtual-machine:~$ git clone https://github.com/renr1981/new_repo.git 正克隆到 'new_repo'... remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 展开对象中: 100% (3/3), 完成. 检查连接... 完成。 

3将远程库更新同步到本地

1)git pull origin master,该命令会自动合并有冲突的文件

讯享网renr@renr-virtual-machine:~/new_repo$ git pull git pull origin master remote: Counting objects: 3, done. remote: Compressing objects: 100% (3/3), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 展开对象中: 100% (3/3), 完成. 来自 github.com:renr1981/new_repo 17c2e44..2fac4c0 master -> origin/master 更新 17c2e44..2fac4c0 Fast-forward nihao.txt | 1 + 1 file changed, 1 insertion(+) 

2)git fetch origin master,不会自动合并

使用该命令的流程一般是:

git fetch origin master 从远程的origin仓库的master分支下载代码 git log -p master.. origin/master 比较本地的仓库和远程参考的区别 git merge origin/master 把远程下载下来的代码合并到本地仓库,远程的和本地的合并 

五 其他

1 分支相关命令

创建分支:git branch 分支名称

切换分支:git checkout 分支名称

创建并切换分支:git checkout -b 分支名称

查看分支:git branch

合并分支到当前分支:git merge 分支名称

删除分支:git branch -d 分支名称

2解决冲突

出现冲突的情况:

​ A和B修改相同的代码,A修改后,提交,B修改还没有提交,然后B直接通过update获取最新代码;

​ A和B修改相同的代码,A修改后直接提交,B修改后也直接提交

针对出现冲突情况,一般比较稳妥的方式是手动修改代码解决冲突后重新提交

讯享网如果文件有冲突,提示信息如下: renr@renr-virtual-machine:~/new_repo$ git pull remote: Counting objects: 3, done. remote: Compressing objects: 100% (3/3), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 展开对象中: 100% (3/3), 完成. 来自 github.com:renr1981/new_repo 2fac4c0..1f18632 master -> origin/master 自动合并 nihao.txt 冲突(内容):合并冲突于 nihao.txt 自动合并失败,修正冲突然后提交修正的结果。 
小讯
上一篇 2025-03-24 11:28
下一篇 2025-02-08 15:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/45401.html