目录
简介
Git是一个分布式版本控制工具,没有"中央服务器",每个人的电脑上都是一个完整的版本库。这样工作的时候就无需联网了,因为版本库就在每个人的电脑上。多人协作只需要将各自的修改推送给对方,就可以互相看各自的修改了。
工作流程如下:
- 从远程仓库中克隆或抓去代码到本地仓库(clone/pull)
- 从本地代码进行修改
- 提交前现将代码放到暂存区
- 提交到本地仓库。本地仓库中保存和修改各个历史版本
- 修改完成后,通过push将代码发送到远程仓库,和团队共享
Git的使用
1.获取本地仓库
要使用git进行版本控制,需要首先获取本地仓库。 进入需要创建本地库的文件夹,然后鼠标右键,点击 Git Bash here,即可进入git界面。
进入git页面后,输入指令
git init
即可创建一个隐藏的.git文件夹
这个就是我们的本地仓库。
2.设置用户信息(每次提交都需要使用)
####将以下内容稍加修改粘贴至Git Bash中####
git config --global user.name “你的用户名”
git config --global user.email "你的邮箱地址"
3.常用命令
Git工作目录(本地仓库文件夹)下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行Git的命令而发生变化
1.查看修改状态(status)
我们可以通过指令 git status 查看git管理的文件的修改状况(工作区和暂存区)
标红的即为工作区存在改动的文件,如新增的文件被标记为Untracked files,修改的文件为modified。
2.添加工作区到暂存区
- 我们可以通过 git add 指令,将上述做出的改变添加到暂存区中,具体操作如下:
- 添加单个文件:git add 文件名
- 把所有改动加入缓存区:git add .
3.将暂存区文件提交到本地仓库
- 我们可以通过 git commit 指令,将暂存区的改动提交到本地仓库,具体操作如下:
- git commit -m"本次改动的名称"
4.查看提交日志
- 我们可以通过 git log [option] 指令,查看提交日志。[option]可有可无,不同的[option]对应不同的日志格式
- git log
- git log --all //查看所有分支
- git log --pretty=oneline //将提交信息显示为一行
- git log --abbrev-commit //输出的commit信息更为简短
- git log --graph //以图的形式显示
5.版本切换
- 我们可以通过 git reset commitID --hard 指令,来切换版本(之前提交后的本地库状态 commitID即为git log --pretty=oneline 指令下 每行前面的一串字符
注:commitID不需要完全写出来,只取前几位即可。
4.分支
1.查看本地分支
- 指令:git branch
2.创建本地分支
- 指令:git branch 分支名
3.切换分支
- 指令:git checkout 分支名
4.合并分支
- 指令:git merge 分支名 // 将这个分支合并到当前的分支
5.删除分支
不能删除当前的分支,只能删除其他的分支
- git branch -d 分支名 // 删除前需要进行检查
- git branch -D 分支名 //强制删除 不检查
5.冲突
- 两个分支合并的时候,如果修改了同一个文件的同一行等,就会发生冲突,但和并仍会进行,git会提示我们去人工处理。
如图,提示Merge conflict in alice.txt 。这个时候就需要我们人工处理这个发生冲突的文件。
"========"上面的 就是当前分支的内容,下面的则是合并上来的分支的内容。 我们只需要把这个文件修改成我们需要的内容即可,甚至可以与两个分支原内容无关。
然后我们再去add、commit即可。
合并完毕,则当前分支不再显示"|MERGING"
合并完成后,被合并的分支依然存在。可使用 git branch 指令查看.
6.绑定Github
1.获取密钥
- 在Git中输入ssh-keygen -t rsa 生成秘钥id_rsa.pub。
输入后直接回车,然后选择y,然后一路回车即可。
然后根据得到的路径,找到id_rsa.pub文件,使用记事本打开,复制里面的内容,即可得到密钥。
2.绑定Github
- 打开你的github,然后进入setting中。
然后点击New SSH key
然后随便起一个名字,把刚才复制的id_rsa.pub文件内容粘贴上去即可。
3.测试是否绑定成功
- 在git中输入 ssh -T git@github.com 显示You`ve successfully authenticated则为已经成功。
网不好,试了半天全是time out,放弃了....
7.远程库
我们可以使用指令git remote 查看所有远程库
1.添加远程库
- git remote add 给远程库起的名字 远程库地址
2. 推送到远程库
- git push 远程库名字 本地库名字
- git push --set-upstream 远程库名字 本地库名字 //推送同时,在远程库与本地库之间建立关系
- 完整命令为
git push [-f] [--set-upstream] [远端名称[本地分支名]:[远端分支名]]
,
如果远程分支名和本地分支名称相同,则可以只写本地分支,如上。 - -f 表示强制覆盖
- 如果已经建立远程库与本地库的关系,则可以直接 git push 。
3.从远程库捞代码
- 直接克隆 git clone 远程库地址 本地储存地址 //如不写本地储存地址 会自动创建一个文件夹。只克隆一次即可,以后使用fetch维护更新内容。
- 抓取远程库的更新 git fetch 远程库名字 分支名字 并不会直接将改动整合到本地库,需要手动合并。
- 手动合并 git merge 远程库名字/分支名字
- 一键抓取合并 git pull 远程库名字 分支名字
4.冲突
- 与本地库冲突基本一致 ,pull过来在本地改一下冲突,再push回去就行
8.在idea中使用git
1.配置路径
在idea的setting中,搜索git
然后将git的路径粘贴上去即可
2.创建远程仓库(略)
3.设置远程库
点击这个管理远程库。
然后输入远程库的名字和URL即可。
4.提交到本地仓库
push、clone等操作流程与之类似,不在此赘述。
5. 其余
点击左下角的git,即可在log中查看各个历史版本等信息。
需要注意的点:
- 切换分支之前,必须先提交本地的修改
- 代码及时提交,提交之后就不会丢失