本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Git使用
使用Git管理代码
-
在github中创建仓库
-
在项目中添加git管理
-
进行git操作
HEAD: 当前版本git命令大全
# 提交本地仓库, 上传服务器 $ git init # 初始化一个空的git仓库 就是隐藏的.git文件 $ git add . # 将当前目录下修改的所有代码从工作区添加到缓存区 . 代表当前目录 $ git commit -m "xxx" # 将缓存区内容添加到本地仓库,xxx为本次提交的说明 $ git remote add origin https://xxx # 设置远程主机,也就是代码推送服务器 $ git push -u origin master # 本地仓库代码发到github中, master是主分支 可修改(-u的命令需要在第一次提交的时候跟上,让本地和空仓库关联,后续的提交只需要git push origin master就行了) $ git push [origin] --tags # 上传所有的tag 例:git push [origin] --tags $ git push origin [tagname] # 上传单个tag 例:git push origin "V1.0" $ git push -f origin master # 确保本地没问题,强制上传 $ git pull origin master # 拉取 # 远程连接 $ git remote add origin https://xxx # 设置远程主机,也就是代码推送服务器origin是我们给这个主机起名 $ git remote -v # 查看远程主机 $ git remote rm origin # 根据名字删除远程库 $ ssh -T git@github.com # 检查ssh端口是否能够连接,默认端口22,可以修改通过加上参数 -p 443 # 分支 $ git fetch origin '远程分支名' # 会新开辟一个分支,不会像pull直接合并当前分支 $ git branch (-c|-C) '分支名称' # 复制当前分支并创建,小c只会在分支不存在时才会复制创建 $ git branch (-M|-m) '分支名称' # 重命名分支 $ git branch (-v|-vv) # 查看所有分支,-v可以显示版本号,-vv则可以显示远程分支的信息 $ git switch -c '分支名' # 新版创建并切换分支 $ git switch '分支名' # 切换到已存在的分支上 $ git merge '分支名' # 合并分支 $ git branch -d '分支名' # 删除分支(若分支没合并无法删除, -D强制删除) $ git checkout -b "本地分支名" "远程分支名" # 创建本地分支 # 创建标签 $ git tag "标签名" # 创建标签,记录当前代码状态,必须commit提交后 $ git tag "标签名" -m "备注" # 创建带有备注的标签 $ git tag -l "0*" # 查看所有以0开头的标签 *是模糊匹配 $ git tag -d "标签名" # 删除标签 $ git checkout "标签名" # 切换标签 $ git push --tags # 提交所有标签 $ git show v1.0.0 # 显示某个标签的详细信息 # 版本回退(任何版本都不会删除,可以通过记录进行来回横跳转) $ git reset "版本号" # 可通过git log查看,就是 commit id 一串哈希值 $ git reset --hard HEAD^ # 回退上一个版本 HEAD^^:回退两个版本 HEAD~n:回退n个版本 $ git checkout -- file # 可以丢弃工作区的错误修改(没有git add情况下) $ git reset HEAD . # 把提交到缓存区的内容撤销 # 记录查询 $ git log # 查看之前提交的版本 $ git reflog # 查看所有操作,可以可以随意跳转版本(例如:错误reset跳转) # 2c9a1fc HEAD@{4}: commit: V2.0 commit提交记录 $ git status # 查看当前版本那些文件被修改 $ git diff # 查看文件被修改了那些内容 # 删除文件 $ git clean -df # 删除不在git管理之下的文件
git全局设置
git config --global user.name "Andermi"
git config --global user.email "xing_yi_bin@163.com"
本地生成秘钥
本地Git仓库和GitHub仓库之间的传输是通过SSH加密,需要设置:
-
创建SSH Key
如果一切顺利的话,可以在用户主目录里找到
.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
ssh-keygen -t rsa -C "youremail@example.com" # 自己的邮箱,然后一路回车
-
第2步:登陆GitHub -> setting
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴
id_rsa.pub文件的内容: -
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送
在 HTTPS 端口使用 SSH
如果使用ssh来push的时候出现这种错误:不能使用22端口进行连接:
解决方案:
-
在用户主目录,也就时我们生成公钥秘钥的那个文件里,
touch config生成config -
请在
~/.ssh/config编辑该文件,并添加以下部分:Host github.com Hostname ssh.github.com Port 443 User git
可以push了
添加 .gitignore 文件
# 1. 创建gitignore文件
touch .gitignore
# 2. 语法规则
以【/】表示目录以【*】匹配多个字符以【?】匹配单个字符
以【[]】匹配字符列
以【!】忽略文件或者目录
# 3. 用法
*.class # 忽略所有class文件
aaa/* # 忽略aaa文件夹下所有文件