百闻不如一见,都说程序员必须会用github进行代码管理,那究竟要如何使用呢?
这篇文章带大家一起学习如何使用idea和GitHub配合进行代码开发和代码管理
你需要准备的工具有:IDEA、git以及GitHub账号
生成SSH密钥
运行gitbash,在终端输入:
cd ~/.ssh
如果提示:No such file or directory 说明你是第一次使用git需要生成密钥。如果不是第一次使用,可以选择使用已有密钥或者重新生成密钥方式。
生成新密钥:
ssh-keygen -t rsa -C "your SSH key comment"
一路回车即可。
密钥生成后可以在你本机系统盘下用户文件夹里发现一个.ssh文件,其中的id_rsa.pub文件里储存的即为刚刚生成的ssh公钥。
也可以使用命令直接复制密钥到剪贴板:
clip < ~/.ssh/id_rsa.pub
为github账号设置SSH密钥:
点击头像进入settings
点击SSHand GPG keys
输入自定义的名字,下方的密钥框里面填写刚刚复制好的公钥即可。
现在GitHub已经认识你了。
配置idea
进入settings
选择git
在右侧的Path to Git executable里面选择自己电脑上的cmd\git.exe路径即可。
点击OK结束
拉取GitHub仓库内容
选择Project from Version Control…
在URL一栏输入GitHub里面clone的SSH连接
下方文本框里的类似于git@github.com:xxxxxx /xxxxxxxx.git
Directory记得选择自己一个特定的目录当作GitHub仓库。
点击clone即可。
现在你已经可以从GitHub上面clone代码到本地了,那么,要是我在本地修改了代码,怎么同步到仓库呢?
代码同步
首先,写完自己的代码之后,先commit,再push
在这里我新建了一个222.txt
首先,commit
点击commit
出现提示:
然后push到GitHub仓库:
接着点击push即可。
出现提示:
然后再进入GitHub的code界面就会看到已经同步成功:
总结一下,其实这个过程就是让github代码管理知道你是谁,给你开通权限。
注:如果出现idea没弹出commit或者push成功的提示,在gitbash界面运行:
git config --global user.email "[email protected]"
git config --global user.name "yourname"
多支线团队协作
这里给出两个方法,可以灵活选择
方法一
正式开始操作的小伙伴可能有有疑问了:弄啥嘞!我是新手,自己写不出那么多代码,代码是从大佬那里搞的,我既想自己建一个仓库用来团队协作开发,又想时时刻刻同步大佬的修改不错过一点消息,该咋办?
先分析这个问题:
同学A--->获取大佬代码
同学A--->获取大佬的实时更新
同学A--->新建自己的代码仓库使用大佬的代码和小伙伴进行开发
大佬--->不明所以,禁止同学A修改自己的著作
其他小伙伴--->修改这位同学A新建的仓库里面的代码,可以push到A的仓库
其他小伙伴--->获取大佬的实时更新
OK,可以看到,如果你是A,你需要同时同步两伙人的代码,还得自己能够push
有点复杂,不过没事,咱们还是一步一步分析:
首先在本地找个风水好的地方新建文件夹作为接下来奋战的阵地,也就是你的仓库
打开gitbash准备开始操作
下载大佬的代码到这个仓库
git clone <大佬的仓库URL> <你本地计算机文件夹路径>
添加大佬的仓库为远程仓库,并为其起一个名字
git remote add DLCode <大佬的仓库URL>
在这里,DLCode 是你为大佬的仓库起的名字
要确认大佬的仓库已成功添加为远程仓库,运行以下命令
git remote -v
确保你的本地仓库中有一个名为 "master" 的分支,并且在该分支上有至少一个提交(commit)
git branch
如果你没有 "master" 分支,或者 "master" 分支是空的,你需要创建一个分支并进行提交
git init # 初始化一个Git仓库
touch README.md # 创建一个 README 文件,这只是一个示例
git add .
git commit -m "Initial commit"
在GitHub网页上手动创建一个新的仓库
执行以下步骤将你的本地仓库关联到新的GitHub仓库
git remote add origin <新仓库的URL>
这里的 <新仓库的URL> 是你刚刚在GitHub上创建的新仓库的URL地址
推送你的本地仓库到新的GitHub仓库
git push -u origin master
在你的本地仓库中,进行自己的修改并提交你的修改
git add .
git commit -m "描述你的修改"
推送你的修改到你们自己的GitHub仓库
git push origin master
在你的本地仓库中,使用以下命令拉取大佬的最新修改
git pull DLCode master
这样你就获得了两个远程仓库,DLCode和origin, 你可以根据需要修改远程仓库的名称为mygithub
git remote rename origin mygithub
如果你想查看特定远程仓库的详细信息
git remote show <remote_name> #<remote_name> 是远程仓库的名称
好,现在要向团队其他成员撒播阳光了
团队的其他成员要如何操作呢?
其他团队成员需要克隆你们的GitHub仓库到他们的本地计算机
git clone <GitHub仓库的URL>
为了获取大佬的最新代码,其他团队成员可以执行以下命令
git remote add DLCode <大佬的仓库URL>
定期使用以下命令来获取大佬的最新代码
git pull DLCode master
在各自的本地仓库中修改代码,然后将这些修改推送到GitHub上
git push origin master
需要注意的是,在这种方式之下,在IDEA打开project的方式不需要new,只需要open你clone下来的代码就可以了
方法二
需求:从A仓库获得代码,在本地修改之后push到B仓库,A仓库不能修改,只能获取实时更新,B仓库可以修改和获取实时更新。
克隆 A 仓库
git clone <A仓库的URL>
在本地克隆的 A 仓库中,添加 B 仓库作为远程仓库,并将其命名为 "B"
进入A的一级目录之后
git remote add B <B仓库的URL>
在本地 A 仓库中,创建一个名为 "my-feature"新的分支,以便在此分支上进行修改并将你切换到该分支,没有将该分支推送到 A 仓库或向 A 仓库的创建者提交合并请求(Pull Request),其他人不会看到你的更改
git checkout -b my-feature
验证你当前所在的分支
git branch
后期手动切换分支
git checkout -b my-feature
使用IDEA进行修改操作
git add .
git commit -m "描述你的修改"
将其推送到 B 仓库时,把 "my-feature" 分支的修改推送到 B 仓库的master分支
git push B master
获取 A 仓库的最新更改,拉取 A 仓库的最新更改并将其合并到你的本地仓库的主分支(假设主分支为 "master")
git checkout master
git pull origin master
此时my-feature分支不会直接受到影响
在my-feature分支中同步最新更改,保持my-feature分支与主分支同步
git checkout my-feature
git merge master
尝试将一个文件大小超过 GitHub 文件大小限制(100.00 MB)的文件推送到 GitHub 仓库
安装 Git LFS(如果尚未安装):https://git-lfs.github.com/
将要追踪的大文件添加到 Git LFS 中
git lfs track "path/to/largefile.sql"
将文件提交到 Git LFS
git add path/to/largefile.sql
git commit -m "Add large file"
git push origin my-feature
确定大文件已经成功添加到 Git LFS 中,查看.gitattributes文件检查是否包含了你要追踪的大文件的路径
尝试将文件添加到 Git LFS 中但是仍然收到 GitHub 的文件大小限制错误
如果你不需要这个文件
git rm mysql/sql/region.sql
丢弃当前的未提交更改
git stash save "Stashing my changes"
修改历史记录
git filter-branch --tree-filter 'rm -f path/to/largefile.sql' HEAD
强制推送到远程仓库
git push -f B my-feature
这样操作之后,在IDEA里面进行pull和push
PULL
可选部分选择A仓库在你的工作目录里面的名称+A仓库开发者的分支(主分支)
PUSH
选择自己的仓库的名称+自己所在的分支
OK,那么到现在使用IDEA和Git进行协作开发就唠叨完啦,有任何疑问或者建议欢迎来信~
版权归原作者 WZ1873 所有, 如有侵权,请联系我们删除。