git常用命令、查看和设置用户名密码、常见问题解决

初始化、提交代码到远程仓库

正常情况下,用户名、密码全局设置一次就可以,使用较少【略过】,如有需要自行百度

新建一个工程,想提交到远程仓库【远程仓库也没有】

如下步骤可实现提交到远程仓库

# 1.初始化
git init

# 2.添加所有文件到本地仓库
git add .

# 3.提交到本地仓库(备注自行修改)
git commit -m "init"

# 4.新建远程仓库
git remote add origin https://git仓库地址/分组名/仓库名.git
# 示例: git remote add origin https://github.com/xx-group/first-project.git

# 5. push到远程仓库
git push origin master

注意事项:执行4、5步时一定要注意网络通常,否则会出现失败、提交卡死到情况

如果出现git push卡死(writing objects、pushing...),按ctrl+c结束提交。找到网络通畅的地方。在idea的Terminal窗口,键入git gc并回车,重新执行第5步

上述全部完成后,已经有master分支了,

切换分支并创建远程分支(当然可以用idea操作,此处是复习git命令)

# 会创建新的test分支
git checkout -b test

# 再提交到远程仓库到test(还没有test分支)
git push origin test

上述命令在远程已经创建了test分支

# 更新代码
git fetch

可以看到已经出现了origin/test分支

若想新建dev分支,可采取相同到方法(上述新建test分支)

上述第4步执行报错,提示仓库不存在,则在github上新建仓库。

再执行

git pull --rebase origin master

最后执行

 git push -u origin master 

原因是本地仓库和远程仓库没有关联!!

补充知识:

若提交时没有.gitignore文件,提交了一推没用的文件(.idea/*,target/*),那怎么删除远程仓库的昵?以下步骤可完成删除

// 1.删除idea文件及里面所有文件
git rm -rf .idea/  
// 2.提交到本地仓库
git commit -m "delete file"
// 3.push到远程仓库
git push origin master

从历史提交中检出新分支

方案一

步骤:

1.查询历史提交ID

2.基于历史提交检出新分支

3.分支检出后正常操作(修改、提交到远程等等)

1.查询历史提交id

方法一通过指令: git log

方法二通过idea:

2.检出分支,完成

git checkout -b 分支名 历史提交ID

示例:

git checkout -b v1.0 dcddaf590fe6a97b05d13014d8eca3b0d3a90611

历史提交ID输入前8位即可(已经复制就粘贴全部)

方案二

使用idea,默认已经打开了项目

点击下方Version Control -> Log

查看和设置用户名密码

说明:用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变。

每次commit都会用用户名和邮箱记录。

github的contributions统计就是按邮箱来统计的。

2.修改密码(请自行验证)

git config --global credential.helper store (输入这个命令后,以后只要在输入一次用户名密码)

3.查看用户名和邮箱地址

git config user.name

git config user.email

4.修改用户名和邮箱地址:

git config --global user.name "username"
 
git config --global user.email "email"

常见错误及解决办法

5.git clone 拉取代码报错 repository 'http://xxxx.xx.xx.git' -- not found.

出现这种情况,本地已经保存了对应的账号密码,对于当前操作权限不匹配;解决方案:拉取代码时添加具有权限的账号密码:

格式如下:

错误信息:repository 'http://远程仓库的域名或者IP/xxx/xxx.git' not found

执行git指令:git clone http://username:password@远程仓库的域名或者IP/xxx/xxx.git

示例:

错误信息: repository 'http://gitlab-vpc.test.com/test-group/test.git' not found

对应gitlab账号密码分别为:root 和 123456

则执行git的指令为:git clone http://root:123456@gitlab-vpc.test.com/test-group/test.git

6.将拉下来的代码推到新仓库

6.1设置新的仓库url(注意:确保已经添加了公钥到新的机器上)

指令:git remote set-url origin 新gitlab地址

示例:git remote set-url origin http://gitlab-vpc.new-test.com/test-group/test.git

6.2将当前分支推到新仓库

特别提醒:建议使用新仓库没有的分支名(使用新仓库没有的分支名不会有以下错误)

指令:git push origin 分支名

示例: git push origin dev

如果推送报错“提示找不到refs...”,原因是本地和远程仓库不匹配,进行强制推送,指令改为

git push -f origin 分支名

示例:

git push -f origin dev

7.push到新仓库的代码合并代码时遇到合并失败报错:refusing to merge unrelated histories

背景: 拉取新push上去的分支(例如dev),然后merge旧分支(master)到新分支报错refusing to merge unrelated histories

解决办法:当前处于新分支(dev),执行拉取旧分支(master)分支代码时,加上参数 --allow-unrelated-histories

git pull origin 分支名 --allow-unrelated-histories

示例:
git pull origin master --allow-unrelated-histories

有冲突解决掉,没有冲突表示已经拉取成功完成了

git pull 相当于git fetch和git merge的组成

最后再push即可

8.报错 The project you were looking for could not be found解决

(背景:mac重装系统后,登陆同一个ID,同步了钥匙串,之前保存了同样的git账号信息导致报错)

原因:重复保存账号密码导致报错

解决办法:删除之前保存的账号(有说在执行clone时带上账号信息,我觉得太麻烦。故采取删除之前保存的账号)

以mac本为例

8.1打开“钥匙串”找到如下git地址,本机有2个地址,直接删除(另外:如果IntelliJ开头的钥匙串也保存了git账号密码同样也删除 )

8.2删除的方法是“右键”->选择“删除xxxxxxxx"

用idea分别打开2个git的任意一个项目,在当前项目下执行任意指令(clone、fetch、pull、push、merge等)按照提示重新输入账号密码即可重新保存。

发布了43 篇原创文章 · 获赞 13 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/qq_41070393/article/details/100700873
今日推荐