git教程

重要:Git与Repo入门 - AngelDevil - 博客园

Git中删除指定文件 - 老_张 - 博客园

一、git安装

1、$ git clone http://git.seo/send-new.git

Cloning into 'send-new'...

fatal: Authentication failed for 'http://git.seo/send-new .git/'

git中fatal: Authentication failed的问题_前进的HelloWorld的博客-CSDN博客_authentication failed

2.git提交错误 git config --global user.email "you@example.com" git config --global user.name "Your Name

git提交错误 git config --global user.email “you@example.com“ git config --global user.name “Your Name_彦楠的博客-CSDN博客

需要输入下面两条命令设置自己的用户名和邮箱,自报家门

git config --global user.email "you@example.com"

git config --global user.name "Your Name

注:--global:表示这台机器上所有的Git仓库都会使用这个配置(也可以对某个仓库指定不同的用户名和Email地址)

3. 查看是否存在 ssh keys,使用命令 "cd ~/.ssh"。如果出现 "No such file or directory",则表示需要创建一个 ssh keys

4. 创建新的 ssh keys,使用如下命令

(1)ssh-keygen -t rsa -C "邮箱"
(2)指定目录(如果在此处不输入路径,而是直接回车,则 ssh keys 生成后存放的路径为 "C:\User.ssh")
(3)输入密码(可输可不输。通常直接回车即可)
(4)确认密码

注:输入完 (1) 中的命令后,(2) ~ (4) 直接回车即可

5.打开 "~/.ssh/id_rsa.pub" 文件(~ 表示用户目录),复制其中的内容

6.打开GitLab,找到 Profile Settings --> SSH Keys ---> Add an SSH Key,并把第5步中复制的内容粘贴到 "Key" 所对应的文本框中。在 "Title" 所对应的文本框中给这个 ssh key 设置一个名字(可以是邮箱),点击 "add key" 按钮即可。之后再使用ssh协议进行代码的拉取、提交等操作,就不需要输入密码了

$ git clone git@git.xxx.io:sendcloud/outbound.git

Cloning into 'xxxx'...
The authenticity of host 'git.sendcloud.io (10.10.xx.xx)' can't be established.
RSA key fingerprint is SHA256:uaqw8vqldWMG4QAdyJgxGOtXFfbT8+eJbJixq8cI3Bw.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

这种情况的原因就是新的ssh客户端不支持ssh-rsa算法,要修改本地配置重新使用ssh-rsa算法。

具体做法:到当前用户目录下的.ssh文件中创建config文件(config没有后缀),使用记事本打开添加如下:

Host *
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa

参考:https://www.cnblogs.com/daibeisi/p/15662546.html

$ git clone git@git.xxx.io:xxx/outbound.git

Cloning into 'xxxx'...
The authenticity of host 'git.xxxx.io (10.10.238.24)' can't be established.
RSA key fingerprint is SHA256:uaqw8vqldWMG4QAdyJgxGOtXFfbT8+eJbJixq8cI3Bw.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

这里选择yes

$ git clone git@git.xxxx.io:sxx/outbound.git
Cloning into 'oxx'...
Enter passphrase for key '/c/Users/Wendy/.ssh/id_rsa':
这里是输入生成ssh keys输入的密码

2.SSH key没生成的问题:

Git 详细教程 - 掘金

GitLab 中配置添加 SSH 密钥 - Jamin Zhang

Git 中 SSH key 生成步骤 - Horan - 博客园

3.输入密码时Permission denied, please try again.

你没有生成公钥,

1.git clone url 拉取远程仓库代码 报错:

git Authentication failed,解决办法仓库的clone采用ssh方式

2.git branch 报下面错误:

Git错误提示之:fatal: Not a git repository (or any of the parent directories): .git

产生原因:一般是没有初始化git本地版本管理仓库,所以无法执行git命令

解决方法:操作之前执行以下命令行: git init


 

4.git branch send_branch_zhouwj  创建分支报下面错误:

git 错误 fatal: Not a valid object name: 'master'.

解决方法:Git新建分支出现fatal: Not a valid object name: ‘master‘错误_meteor^_^的博客-CSDN博客

5.git checkout send_branch_zhouwj  切换到分支send_branch_zhouwj,这样从本地导入项目,就是在自己的分支增删改查了。

二、git工作流程

第一次提交项目,将本地的项目与远程的仓库建立连接:git remote add origin git@github.com:uncleyong/my_rf.git

三、git基本命令

Git 命令清单_Summer-X的博客-CSDN博客

git之一: git基础 - 你的泪我的眼 - 博客园

Git撤销&回滚操作_奋飛的博客-CSDN博客_git回滚

新建远程分支:

0.拉取指定分支的代码:

 git clone -b marketing-api git@git.

1.新建一个本地分支:

$ git checkout -b dbg_lichen_star  #创建的新的分支并且切换到新分支dbg_lichen_star

1.2 修改本地分支名:先切换到我创建的分支上,再执行

git branch -m new-branch-name

2.查看一下现在的分支状态:

git branch   #列出你在本地的分支,星号(*)表示当前所在分支

git branch -vva:查看所有分支

3.把新建的本地分支push到远程服务器,远程分支与本地分支同名(当然可以随意起名):

git push origin dbg_lichen_star:dbg_lichen_star

3、创建远程origindev分支到本地

git checkout -b dev origin/dev

4、把dev分支push到远程
git push origin dev

5、git branch -a  #查看所有分支,会看到remotes/origin/dbg_lichen_star这个远程分支,说明新建远程分支成功

删除远程分支

推送一个空分支到远程分支,其实就相当于删除远程分支:

git push origin  :dbg_lichen_star

git push origin -- delete dbg_lichen_star

重点:切记先创建分支  不要在master修改代码,拉下来之后是master

git checkout -b yourbranch(git branch yourbranch ,git checkout yourbranch)

在你的分支上随便修改  随便提交 都没问题  自己联系情况下,但是如果有别人也在你的分支上修改或者写代码  那你就不要随便乱写

git status  多用

有些没有用的 比如eclipse的配置文件也会默认提交   你要用 git checkout --  filename

git add . 提交所有修改

git add  filename 提交单个文件

git checkout . 慎用

git diff  filename

git diff --cached  为commit做好了准备,你可以使用 git diff 命令再加上 --cached 参数,看看缓存区中哪些文件被修改了。

git commit -m"function"  function是提交的描述信息

git pull branchname 从远程仓库拉取代码到工作区

可能有冲突   git会提示你   conflict

你需要解决冲突

git push branchname 

git branch experimental  创建分支experimental

拉取远程分支代码到本地:
1. 切换到远程分支:
如果你想切换到远程分支,可以使用:

git checkout -b <local-branch-name> origin/<remote-branch-name>
这将会创建一个新的本地分支 <local-branch-name> 并设置为跟踪远程分支 <remote-branch-name>。

2. 合并远程分支到当前分支:
如果你已经有一个本地分支,并且想要合并远程分支的更改,可以使用:

git merge origin/<remote-branch-name>

3. 拉取并自动合并:
如果你想要拉取远程分支的更改并自动合并到当前分支,可以使用:

git pull origin <remote-branch-name>
这将会拉取远程分支的更改并尝试与当前分支合并。

4. 解决合并冲突:
如果在合并过程中出现冲突,Git 会停止合并并让你解决这些冲突。解决冲突后,你需要提交更改以完成合并过程。

5. 推送更改到远程仓库:
如果你对本地分支进行了更改并希望推送到远程仓库,可以使用:

git push origin <local-branch-name>
git branch命令可以查看当前的分支列表,以及目前的开发环境处在哪个分支上

输入git checkout 分支名可以切换到其他分支

进入master分支:通过下面的git merge命令来合并experimental到主线分支master:
git merge  -m 'merge experimental branch' experimental 

git diff 查看哪些文件冲突

git reset --hard HEAD 取消合并

git diff master test  查看test分支和master之间的差别

git help diff  详细查看其他参数和功能
git log 命令显示从最近到最远的提交日志
 git log --graph

git reflog  查看命令历史
远程库的名字就是origin,这是Git默认的叫法

git checkout -b dev  表示创建并切换dev分支
git branch   查看当前分支
显示当前所有文件的状态:git status -sb
查看更改:git diff 
用来将变动加到暂存区:git add 文件路径 
用来正式提交变动,提交至 .git:git commit -m "信息"
查看变更历史:git log 

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

git checkout -- filename或者目录 从修改区撤销filename的add操作(已进行git add 操作)

git reset HEAD filename 从暂存区(索引区)撤销filename(文件被修改了,但未执行git add操作)

回滚:

实例:分别创建c1.txtc2.txtc3.txt,三个文件分别提交三次,然后回退到中间那次提交:

它不仅可以回收最后一次的,还可以回收中间的,它回收中间的,中间之后的并不回收。比如,连续三次提交了三个文件,分别是c1.txt,c2.txt和c3.txt,如果回收第二个,那么会剩2个文件,分别是c1.txt和c3.txt,而不会只有c1.txt。本地查看日志git log,会产生一条新提交Revert "c2"

git revert HEAD~1

注:本地C2,c3.txt文件依然保留了。这时远程没有回滚,所以不能git commit,如果提交了,c3文件会被提交

撤销&回滚:

Git撤销&回滚操作_奋飛的博客-CSDN博客_git回滚

创建标签:操作标签 - 廖雪峰的官方网站

1.首先,切换到需要打标签的分支上:

2.打一个新标签:git tag <name>

3.查看所有标签:git tag

1.在工作区git status-->git commit -am ''-->git pull-->git push

2.在远程仓库,git pull

第一步:拉取远程代码
git clone 
第二步:查看本地分支和远程分支
1、cd 到工程目录下; 
2、git branch -al 查看本地和远程的所有分支。 

成功看到了所有的分支:其中master是本地分支,前面的星号*表示正在使用的分支 
前面带有remotes的分支都是远程分支。

第三步、将远程分支与本地分支进行关联
1、git pull origin master 
(如果你想拉到本地的dev分支上,首先git checkout -b dev,然后使用git pull origin dev,这样就将本地dev分支与远程origin/dev相绑定了)


这个命令是将本地分支与远程分支进行关联,并且将远程分支origin拉到本地分支master下 
如果远程分支origin下还有子分支1.0.0.1,则使用git pull origin/1.0.0.1 master 这样就是将本地的master分支与远程的origin/1.0.0.1进行了绑定

2、git branch -vv 
可以看到master后面蓝色部分origin/master,说明master分支已经与origin/master绑定在一起了。 
3、已经关联好了的代码,直接输入git pull 就可以同步了

第四步、上传本地代码到远程分支上
1、git add ./abc.txt 
加入你已经修改本地文件acb.txt这里是相对路径 
2、git commit 
使用git commit 就是将这个txt文件上传到本地分支上 
3、git push 
这个命令的结果就是将本地分支master中commit的数据abc.txt上传到了远程绑定的master分支上了。
 

在使用 git pull 拉取代码的时候出现“error: Your local changes to the following files would be overwritten by merge”解决方案

# 1. 备份当前的工作区的内容,让工作区保证和上次提交的内容一致。
#  同时,将当前的工作区内容保存到Git栈中。
git stash

# 2. 拉取服务器上的代码
git pull

# 3. 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。
git stash pop
————————————————
版权声明:本文为CSDN博主「八了个戒」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/XH_jing/article/details/115367121

报错:Please enter a commit to explain why this merge is necessary?(merge branch)

这里写图片描述

解决步骤,可以不管(直接下面3,4步):

//1.按键盘字母 i 进入insert模式

//2.修改最上面那行黄色合并信息,可以不修改 /

/3.按键盘左上角"Esc"

//4.输入":wq",注意是冒号+wq,按回车键即可 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值