原生Git
git基本概念
四个工作区
Workspace: 工作区,就是你平时存放项目代码的地方 Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表 Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本 Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
四种状态
Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified.如果使用git rm移出版本库, 则成为Untracked文件
Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过,返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改
Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified
本地操作
配置用户签名
方式一 (单个仓库有效)
git config user.name 用户名
git config user.email 邮箱
配置信息会保存在当前仓库目录下的.git/config 文件中。
方式二 (全局有效)
git config --global user.name 用户名
git config --global user.email 邮箱
该种方式配置信息会保存在系统盘的系统用户目录下的.gitconfig 文件中,保存格式同上面一样。
初始化仓库
git init
查看Git状态
git status
Git添加代码到暂存区
git add [file1] [file2] ...
git add [dir]
git add .
Git提交代码
git commit -m [message]
git commit [file1] [file2] ... -m [message]
git commit -am [message]
Git修改并提交代码
git status
git add filename
git status
git commit
git reflog
Git版本切换
git reflog
git log
git reset --hard [版本号]
Git分支常用命令
git branch -v
git branch [新分支名]
git branch -d [分支名]
git branch -m [旧名字] [新名字]
git checkout [分支名]
git merge [分支名]
如何解决合并分支冲突
合并分支时,两个分支在同一个代码的同一个位置都有修改,Git无法判断,如何去留?
这个时候需要手动修改文件,修改完成后再次提交就合并成功了。
远程操作
创建别名
git remote add myProject [远程仓库地址]
git remote -v
推送本地库到github
git remote [别名] [分支名]
第一次推送需要windows凭据,会自动弹出一个窗口,在浏览器中输入账户和密码即可。
如果出现10053错误,那么使用git config --global http.sslVerify false 来解除https的ssl的凭证。
拉取远程库到本地
git pull [别名] [分支名]
克隆远程库
git clone [url地址]
区别:
- fork: 复制一份别人的仓库到自己的远程仓库中,后期可以使用pull request请求别人合并自己新增加的功能。
- clone: 将别人的项目clone到自己的本地电脑中。
- pull: 从远程获取最新版本并merge到本地。
团队内协作
邀请团队成员:
github项目->Settings->Collaborators->Manage access->Add people
跨团队协作
先fork一份到自己的github中,修改完毕以后,先提交,然后Create pull request给其它团队的管理者审核,对方同意以后,就可以合并。
github免密登录
-
在windows 用户目录下面找到.ssh 文件夹 -
在当前目录下面打开git命令行,输入以下命令生成密钥: ssh-keygen -t rsa -C [github邮箱]
-
复制id_rsa.pub中的内容 -
在github账号中配置,将复制的公钥粘贴到以下地址中: Settings->SSH and GPG keys
然后pull的时候就可以使用ssh,不需要输入用户名和密码。
JetBrains 的IDE集成Git和GitHub
集成Git
初始化本地库
集成Git
VCS->启用版本控制集成->确定
取消版本控制
设置->版本控制->选中项目点减号
添加忽略文件
在根目录创建一个.gitignore文件,然后将要忽略的文件添加进去。
集成Git切换版本
1.添加到暂存区
右键根目录->Git->添加
2.提交
右键根目录->Git->提交->写上备注信息->点击提交
3.查看版本
当提交多次以后,可以查看提交过的历史版本:
点击左下角的Git->Log
4.切换版本
右键要切换的版本,然后点击签出修订... ,即可切换版本。
可以看到指针此时指向了v2。
如果要回到最新版本,右键最新版本,然后签出到master。
集成Git创建、切换分支、合并分支
创建分支
菜单->Git->新建分支…
切换分支
左下角->选择分支->签出
合并分支
首先切换到要合并的分支(一般是master)-> Git -> 合并 -> 选择分支 …
解决分支冲突
根据需要手动选择即可,第三个选项是自己手动修改。
集成GitHub
在ide中配置GitHub
文件->设置->版本控制->GitHub->点击+添加即可
推送项目到GitHub
共享项目到GitHub
Git -> GitHub -> 在GitHub上共享项目 -> 在描述中写上项目别名 -> 点击确定
push
- 修改代码并提交代码
- Git -> 推送
从GitHub 拉取项目
pull的目的就是获取项目的最新版本,并merge到本地。
Git -> 更新项目
从GitHub克隆项目
VCS -> 启用版本控制 -> Git -> 克隆
码云Gitee
Gitee简介
Gitee与Github功能类似,但是相比于github而言,gitee有两个优势:一是速度快,二是支持免费的私密项目。
官网
https://gitee.com/
JetBrains的IDE集成码云Gitee
1.添加插件gitee 2.登录码云 3.push 4.pull
|