git实用操作以及相关问题汇总

前言

现在大部分公司代码都用git进行进行版本控制,便于团队协作开发。个人写代码的时候也可以放到GitHub上或者gitlab上面进行版本控制便于开发。最近在使用git的时候遇到了一些问题和坑因此记录一下,以方便以后的使用。

git配置

1.下载并安装git工具

git的安装网址git打开网址安装需要的类型,git官方提供了Mac,windows和linux的版本
这里写图片描述

2.GitHub上进行注册

GitHub注册也很简单主要分为一下几步:
1.进入github官网,点击右上角注册按钮。
2.填写账号名,邮箱和密码
3.选择免费的公开仓库,点击完成就提示注册成功了。
4.点击右上角的账号设置,可以填写一些基本信息。 这部分属于github的社交功能了
5.我们看到页面上有一个警告标记,是邮箱验证。 打开邮箱找到邮件点击即可。

3.本地配置

当我们注册完成后,就可以使用注册的邮箱在本地进行配置,这个配置主要是本地电脑上与github进行关联,关联后就可以在本地操作,然后进行与GitHub同步更新等操作,配置的过程如下:

1.设置用户名和邮箱(–global 为全局参数,表明本地所有Git仓库都会使用这个配置)

git config --global user.name "yourname"
git config --global user.email "your_email@youremail.com"

2.生成密钥(SSH key)

ssh-keygen -t rsa -C "your_email@youremail.com"

这里写图片描述
3.添加密钥(SSH key),并验证是否成功

添加密钥:将上一步骤生成的密钥即.ssh/id_rsa.pub中内容全部复制。在github的 Settings–>SSH and GPG keys–>New SSH key,key中粘贴复制的内容(Title自定义)。

验证:github输入ssh -T git@github.com

4.创建项目工程

1.远程仓库
在github中New repository 输入Repository name。[例如:TestDemo]

2.项目工程
在自己本地电脑上新建一个与github新项目工程同名的文件夹。[例如:TestDemo]

5.创建版本库

进入步骤四中的文件夹下,输入以下命令初始化仓库,若出现:Initialized empty Git repository in E:/* /*/.git/ 则表示创建成功[注意:此时会生成一个.git目录(隐藏目录)]

git init

6.连接远程仓库(下面两种方式都可以)

git remote add origin git@github.com:yourName/repositoryname.git

git remote add origin https://github.com/yourName/repositoryname.git

7.从远程仓库pull文件(若远程仓库没有文件,直接执行步骤8)

git pull origin master

8、将本地文件push到远程仓库(若没有文件则手动创建)

git status          查看工作目录的状态

git add <file>        将文件添加到暂存区

git commit -m "commnet"   提交更改,添加备注信息(此时将暂存区的信息提交到本地仓库)

git push origin master    将本地仓库的文件push到远程仓库

4.git分支管理

当本地仓库与远程仓库建立连接后,有时候需要新切一个分支来进行操作,避免影响到原来的分支。如果原来的仓库叫 demo。首先使用命令:git checkout branch看看所有的分支,也可以使用git checkout status来看看当前分支名称和其他信息。确定当前是在demo下面,如果不在就使用命令git checkout demo
1.新建分支
git checkout -b newdemo,其中newdemo是你新建分支名称,可以自己去取。
2.删除分支

git branch -d newdemo

该命令是删除的本地分支,不会删除远程上的分支。删除分支的时候记得先切换到其他分支下再来删除你要删除的分支,删除分支时可能会出现 cannot delect的异常,这时候可以使用git branch -D newdemo来进行强制删除,记得是大写的D。
3.拉取远程分支

git pull demo

4.提交分支到远程

git push origin demo

当然提交之前先commit一下,git commit newdemo -m "提交分支",提交分支的时候可能会出现提交不了的情况,记得先进行合并之后再提交。

5.项目中实用操作

有时候我们在当前分支下工作时还未完成相关工作,又要切换到其他分支工作,这时候由于本分支下的工作还未完成,并不想commit,此时有一个特别实用的操作。
1.git stash
在切到其他分支之前,我们可以先执行,git add .,然后再执行git stash操作,这样分支中修改的内容就会在本地仓库先保存起来。当我们在其他分支上完成工作后再切回本分支时,使用 git pop就可以恢复到切分支前的状态开始工作了。
2.git stash list

也可以用 git stash list 来查看所有的搁置版本在出现一个搁置栈的情况下,比如如果你想找回栈中的第2个,可以用 git stash apply stash@{1}如果想找回第1个,可以用 git stash pop如果想删除一个stash,git stash drop <id>
删除所有stash,git stash clear
3.找回删除的stash
如果有时候删除了stash,然后又想找回来该怎么办,使用git fsck可以找回所有的stash,找回后再使用stash apply stash@{n}就可以切换到你想要的stash上了,其中n是可以自己选的,1,2,3等。具体可以看StackOverflow上面的https://stackoverflow.com/questions/89332/how-to-recover-a-dropped-stash-in-git
4.删除远程分支

git push origin --delete Test_Branch

6.其他问题

1.Cannot delete branch 'Test_Branch' checked out at '[directory location]'.
解决方案:切换到另一个分支,再删除如下:

$ git checkout master
$ git branch -d Test_Branch

如果还删除不了使用如下命令进行强制删除:

$ git branch -D Test_Branch

2.error: Entry '<fileName>' not uptodate. Cannot merge. (Changes in working directory)
或者

error: Entry '<fileName>' would be overwritten by merge. Cannot merge. (Changes in staging area)

解决方案:git reset --hard详情可以参考StackOverflow上的https://stackoverflow.com/questions/1248029/git-pull-error-entry-foo-not-uptodate-cannot-merge

参考文献

1.http://genomewiki.ucsc.edu/index.php/Resolving_merge_conflicts_in_Git
2.https://stackoverflow.com/questions/89332/how-to-recover-a-dropped-stash-in-git
3.https://backlog.com/git-tutorial/cn/stepup/stepup2_5.html

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页