作者今年三月份进入一家公司的软件开发岗位实习,需要到gitlab和bitbucket上下载公司项目进行debug,结果本人对于git只停留在git clone 阶段,导致出了不少的问题,还好有一位好心的大哥一直教我,才让我明白了怎么用。
周末趁机学习了一下git的操作,我看的是b站狂神说的git教学视频,感觉讲得挺不错的,所以想在这里记录一下,作为一个git小白,刚进入公司要用到时,该怎么去用git下载或上传项目。
首先要清楚,git的架构由四部分组成,分别是工作区、暂存区、本地仓库、远程仓库。
Working Directory:工作区,平时存放代码的地方,就是你代码所在的文件夹;
Stage:暂存区,用于临时存放你的改动。实际上它是一个文件,保存即将提交的文件列表信息;
Repository(History):仓库区,本地仓库,安全存放数据的区域,这里面有提交的所有版本的数据,其中HEAD指向最新放入仓库的版本;
Remote Directory:远程仓库,托管代码的服务器。
直接到git官网,根据自己的操作系统下载合适的版本,安装过程中直接默认下一步就行,不需要做任何修改。
安装完成后,随便在任何一个地方右键,都可以看到Git GUI Here 和Git Bash Here即为安装成功。
进入 C:\Users\当前用户名.ssh文件夹(如果没有则在相应位置自己创建一个),当前应该为空文件夹,然后右键选择Git Bash Here,在打开的git bash中输入 ssh-keygen
,即可在当前文件夹中生成id_rsa(私钥)和 id_rsa.pub(公钥)两个文件。
用记事本打开pub文件,将内容全部复制,然后粘贴到 gitlab 或者 bitbucket 的个人公钥中。
以bitbucket为例,登录bitbucket之后,点击左下角的人头,选择Personal Settings,点击SSH keys,再点击Add。
接着将pub文件复制过来的公钥粘贴到Key中,label可以随便填,只是为了提醒你这个公钥的来源是哪里而已。
填写完毕后直接点击Add Key就可以了。
这里说明一下,公钥的作用相当于密码,即赋予当前计算机访问仓库的权力,所以添加公钥这一步是必须的!
1)查看git配置文件:git config -l
2)查看系统配置:
命令:git config --system --list
文件位置:D:\Git\etc\gitconfig
3)查看本地配置:
命令:git config --global --list
文件位置:C:\User\ashui.config
4)配置用户名和邮箱(这里加不加“”都可以)
git config --global user.name "用户名"
git config --global user.email "用户邮箱"
配置用户名和邮箱不是必须的,但是建议这么做!因为提交代码时人家必须知道是谁提交上来的,本地用户名和邮箱就是这个标识。
直接新建一个空文件夹作为项目代码的存放位置。
在bitbucket页面上选择你要下载的项目仓库,进入仓库之后点击clone,选择http协议的链接,接着复制链接。
然后在我们刚建立的空文件夹里右键选择git bash here,在命令行中输入复制下来的链接,回车下载即可。
下载完成后在文件夹下会多了个项目文件夹。
进入到下载下来的项目文件夹中,对项目文件按公司要求做出相应修改(debug什么的)。
当要提交项目时,需要进入到.git文件的同级目录(像我是test\PalmServerDemo文件夹中),同样右键git bash here。
git status
nothing to commit 表示我的暂存区中没有任何文件可以提交。
命令:git add .
(注意这里的 “ . ”表示的是当前文件夹的所有文件)
解释:将当前文件夹的所有文件都添加到暂存区。
补充:但是大多数时候我们只需要添加我们修改过的文件就可以了,所以可以使用 git add 文件名
来添加。
添加完成后同样可以使用 git status
命令来查看文件状态,绿色的表示添加成功已经在暂存区中的,红色的表示未添加进去的。
命令:git commit -m "注释"
解释:将暂存区中所有文件都加到本地仓库,同时配上本次提交的注释
命令:git push
(有可能会弹出需要输入yes/no,此时要输入yes,不能直接回车)
解释:将本地仓库的文件备份到远程仓库
列出本地仓库所有分支:git branch
列出远程仓库所有分支:git branch -r
创建分支dev,但仍停留在当前分支:git branch dev
创建分支dev,并切换到该分支:git checkout -b dev
合并dev分支到当前分支:git merge dev
删除dev分支:git checkout -d dev
根据以上流程基本就可以满足公司日常的需要了,等以后还有什么新的需求再来更新博客!