重要:Git与Repo入门 - AngelDevil - 博客园
一、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 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没生成的问题:
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基本命令
新建远程分支:
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、创建远程origin
的dev
分支到本地
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 --graphgit 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.txt
,c2.txt
和c3.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文件会被提交
撤销&回滚:
创建标签:操作标签 - 廖雪峰的官方网站
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,按回车键即可