由于之前使用了Github进行代码管理,就得学习Git的使用,期间不可避免地要踩一些坑,故开此贴记录Github和Git的使用过程中的经验,非教程贴,其中仍然可能存在一些问题甚至错误,敬请指正。
目录
Git基础知识
>Git中的文件状态
从Git版本控制角度区分:(最主要)
在Git使用过程中,根据文件处于哪个区来区分文件状态是再好不过的了;
- 未追踪
文件处于[工作区]; - 已暂存
文件处于[暂存区]; - 已追踪
文件处于[本地仓库];
============================================================================================
Git常用命令
>Git官方中文文档链接
>配置&帮助:git
列出Git中的所有命令用法及其参数解释;
其它用法:
-
git --version
显示Git版本; -
git --help
同"Git",列出Git中的所有命令用法及其参数解释;
>状态:git status
检查当前本地仓库中文件状态;
根据git status的返回信息区分:
git status的返回信息中不会显示已追踪文件,即处于[本地仓库]的文件;
- untracked files (未追踪文件)
文件处于[工作区]; - changes to be committed (等待提交的文件)
文件处于[暂存区]; - changes not staged for commit(未暂存的文件)
文件处于[工作区];
>克隆:git clone < url >
将远程仓库克隆到当前路径下,本地仓库名(文件夹名)默认为远程仓库名;
其它用法:
- git clone < url > newName
克隆远程仓库,并指定克隆后的本地仓库新名字为newName;
>提交:git push
将暂存区中的文件更新提交到远程仓库中;
其它用法:
- git push -u origin master
在第一次通过Git提交到远程仓库时,-u参数可以指定master分支为默认的提交目标分支,后续通过Git提交时即可使用git push提交变更,省略分支的设置;
============================================================================================
Git常见问题
Eclipse中项目文件在Git链接后的不同角标状态
-
项目的右下角的金色的圆柱标识表示该项目已经是Git的资源库;
-
包或文件的右下角的问号表示新创建且并未提交的;
-
包或文件的右下角的绿色加号表示 文件已经添加到Git暂存区,但并未提交到Git仓库里;
-
项目或包的右下角的黑色星花表示本地的项目与Git仓库中的版本不同(本地已经更改了);
-
在项目或包或文件名的左侧会有一个>的标识,说明文件已更改,但未提交.
>如何利用Git链接Github上新建的远程仓库(Repository)?
两种办法,一种直接git clone 仓库地址,将远程仓库克隆下来即可自动链接,这里不再赘述,主要讲第二种利用SSH链接本地仓库与远程仓库;
1.新建Git本地仓库
本地创建一个新的文件夹(假设为MyProject),利用git init -b main 将其初始化为Git仓库;
利用git init初始化本地仓库后,会在仓库根目录下生成一个隐藏文件夹.git,保存了Git的配置信息;
2. 项目文件提交到Git暂存区
往MyProject中添加项目文件,然后利用git add . 将所有文件提交到暂存区;
git add . 为将工作区中的所有(更改/新增)文件提交到暂存区,可以利用git status查看Git仓库的情况;
3. 暂存区文件提交到Git本地仓库
利用git commit -m ‘注释’ 将暂存区的文件提交到本地仓库;
4. 配置SSH链接Git本地仓库与Github远程仓库
此时Git本地仓库已经创建好了,项目也已经提交到了本地仓库,但是Git如何判断本地仓库对应的是哪一个Github上的远程仓库?这就需要我们利用SSh使Git本地仓库与Github远程仓库链接起来;
首先,获取本地仓库的公钥;
打开C:/users/Administrator/,检查目录下是否有.ssh文件夹,如果没有则利用Git命令创建:
其中Administrator为计算机用户名,我的是bush,请根据实际修改,下方"username@xxx.com"为你的github注册邮箱;
$ ssh-keygen -t rsa -C "username@xxx.com"
然后就会发现C:/users/Administrator/.ssh中存在两个文件,其中id_rsa.pub即为你的SSH公钥,is_rsa为私钥。
用任意文本编辑器打开公钥文件id_rsa.pub,复制其中公钥内容;
然后上Github,点击用户头像选择settings
在用户配置页面选择SSh and GPG keys,
点击New SSH key新建SSH链接钥匙;
Title中内容随意,Key中粘贴上刚刚复制的id_rsa.pub中的公钥内容,然后点击Add SSH key即可,此时可能需要验证Github账户密码,输入即可。
然后在Github上新建一个仓库(假设为MyProject),为了简化后续操作,不要勾选下方复选框。
复制创建新仓库后的仓库https地址(如下),接着在Git中进入本地仓库根目录下
利用git remote add origin https://github.com/HelloBush/MyProject.git命令,将Git本地仓库与Github远程仓库链接,其中地址为刚刚复制的Github仓库地址。
至此,Git本地仓库MyProject已经和Github远程仓库MyProject链接成功!
- 首次提交Git本地仓库到Github远程仓库
git push -u origin main
利用git push -u origin main 将GIt本地仓库的文件提交到Github远程仓库上;
此时第一次推送会报错,需要先执行 git pull
拉取之后,因为版本新旧问题推送失败的话,可以强制执行,覆盖原来的main:
git push -u -f origin main
(注:参数-u是为了以后提交时,可以使用"git push"代替 "git push origin master")
- 后续在Git本地仓库中的更改都可以按以下步骤提交到Github远程仓库
- git add .
- git commit -m ‘提交注释’
- git push