git 操作指南
git安装 https://git-scm.com/
1 git常用命令
命令名称 | 作用 |
---|---|
git config --global user.name 用户名 | 设置用户签名 |
git config --global user.email 邮箱 | 设置用户签名 |
git init | 初始化本地库 |
git status | 查看本地库状态 |
git add 文件名 | 添加暂存区 |
git commit -m “日志信息” 文件名 | 添加到暂存区 |
git reflog | 查看历史版本 |
git log | 查看详细版本信息 |
git reset --hard 版本号 | 版本穿梭 |
-
设置用户签名
git config --global user.name 用户名
git config --global user.email 邮箱
Git 首次安装必须设置一下用户签名,否则无法提交代码,
这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有关系
-
初始化本地库
git init
cd 到目标目录下,然后执行git init ,即可执行初始化
-
查看本地库状态
git status会查看本地库的状态,新加的,修改的会表红,提交到暂存区的会表绿
-
添加暂存区
git add 文件名
把标红的添加到暂存区,红遍绿
-
将暂存区的文件提交到本地库
git commit -m “日志信息” 文件名
把本地暂存区的东西添加到本地库,并记录日志信息。生成一次版本提交记录
-
历史版本
git reflog 查看版本信息
git log 查看版本详细信息
-
穿梭
git reset --hard 版本号
版本号在reflog日志中可以看到,reflog中显示的是缩略版本号,log中是详细版本号。
2 Git分支操作
命令名称 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定分支合并到当前分支 |
-
查看分支
git branch -v
展现不同的分支,当前分支标记为绿色,
.git文件夹中 head文件,指向的就是当前的分支
head文件夹中,ref中,有全部的分支 每个分支存的是当前的版本号
-
创建分支
git branch 分支名
从当前节点创建一个新的分支
-
切换分支
git checkout 分支名
head,指针指向分支
-
合并分支
git merge 分支名
把指定分支合并到当前分支
无冲突情况下会自动合并,有冲突的情况,需要先解决冲突
有冲突的时候,合并会提示合并失败。然后手动解决冲突,就是把文件改修改的修改。
冲突的文件会有特殊的标识
<<<<<<< HEAD
XXXXXX
XXXXX
============
XXXXX
XXXXX
>>>>>>> hot-fix
等号上面的是head指向的分支,文件内部的情况,
等号下面是要合并的分支,文件内部的情况。
修改为想要修改的地方,然后,把<<<< ==== >>>这些特殊字符也删掉
git add 修改的文件,
然后执行 **git commit -m “版本信息” ** 注意,不可以带文件名,带文件名就会报错。提交后就解决了冲突。
3 团队协作
- 团队内协作
岳不群用push命令推送到远程代码托管中心,
令狐冲用clone命令拉取岳不群推送的代码
令狐冲修改后用push命令把自己的代码提交到代码托管中心
岳不群再用pull命令拉取代码
-
跨团队协作
远程仓库有一个岳不群的仓库,
然后东方不败用fork命令创建一个岳不群仓库的复制,复制同样存在于远程仓库,
东方不败用clone命令拉取远程仓库的代码到本地,修改后push到代码托管中心。
然后东方不败的远程库可以Pull request,提交代码到岳不群的仓库,经过审核后,merge到岳不群的远程仓库。
岳不群和令狐冲都可以pull到本地仓库。
4 github操作
地址:http://github.com
创建远程仓库
点头像旁边的加号,new repository
填入名字,然后选择私有还共有,然后创建。
远程仓库操作
命令名称 | 作用 |
---|---|
git remote -v | 查看当前所有远程地址别名 |
git remote add 别名 远程地址路径 | 起别名 |
git push 别名 分支名 | 推送本地分支上的内容到远程仓库 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git push 远程库地址别名 远程库分支 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
团队协作
-
创建远程仓库别名
git remote -v 查看当前所有远程地址别名
git remote add 别名 远程地址
别名其实就是一个短链接,快捷方式,
远程地址在github上面的http地址,或者ssh地址。
-
推送本地分支到远程仓库
git push 别名 分支
-
克隆远程仓库到本地
git clone 远程地址
本地啥也没有的时候使用clone 不用git初始化,找个合适的文件夹就行。
小结:clone 会做如下操作。1、拉取代码。2、初始化本地仓库。3、创建别名
-
邀请加入团队
远程仓库页面,最后一栏,settings ->manage access->invire a collaborator
搜索想要邀请的人.
复制地址把地址发给他,然后他点链接,接受邀请就加入了。
-
团队内的人可以修改内容并push 到远程仓库
-
拉取远程库内容
git pull 远程库地址别名 远程分支名
下载远程仓库最新的代码。
跨团队协作
-
将远程仓库的地址复制发给邀请跨团队协作的人
其他人可以fork一份代码到她自己的远程仓库
-
然后clone到本地,修改代码后push到自己的远程仓库
-
远程仓库更新后,可以发起pull request 请求,把修改的代码提交给fork的源地址
-
原仓库的持有人可以收到pull request请求,然后选择是否把修改提交到本地。
SSH 免密登录
我们可以看到远程仓库中还有一个 SSH 的地址,因此我们也可以使用 SSH 进行访问。
删除home目录下的.ssh目录。
ssh-keygen -t rsa -C 远程仓库的SSH地址
此时home目录下会生产.ssh的目录,里面有id_rsa.pub文件。
复制id_rsa.pub 文件内容,登录GitHub,点击用户头像→Settings→SSH and GPG keys
title随便取名,把生成的内容复制到下面的栏。
接下来再往远程仓库push 东西的时候使用SSH 连接就不需要登录了。
5 idea使用git
- git ignore
忽略git同步的文件
首先创建一个git.ignore (其实以.ignore结尾的就行,其他没有限制)
在里面写入需要忽略的文件类型,或者具体文件
.classpath
.project
.settings
target
.idea
*.iml
然后再git.config中,引用git.ignore
[user]
name = Layne
email = Layne@atguigu.com[core]
excludesfile = C:/Users/asus/git.ignore
注意:这里要使用“正斜线(/)”,不要使用“反斜线(\)”
然后再idea中的设置中,找到git,添加路径为git bin目录下的git.exe文件
- 初始化本地库
-
添加暂存区
右键点击项目选择Git -> Add 将项目添加到暂存区。
-
提交到本地库
-
切换版本
在IDEA 的左下角,点击Version Control,然后点击Log 查看版本
找到对应的可以checkout过去
-
创建分支/切换分支
在IDEA 的右下角,显示当前的分支
这里也可以创建新的分支,checkout可以切换过去。
-
合并分支
在IDEA 窗口的右下角,将hot-fix 分支合并到当前master 分支。
-
解决冲突
点击Conflicts 框里的Merge 按钮,进行手动合并代码。
手动合并完代码以后,点击右下角的Apply 按钮。
代码冲突解决,自动提交本地库。