最近更新于 2024-05-05 14:19
Git Book:https://git-scm.com/book/zh
Git 和 GitHub
设置身份信息
git config --global user.email 'GitHub邮箱' git config --global user.name 'GitHub用户名'
配置ssh验证
生成ssh密钥
ssh-keygen -C '[邮箱]' -t rsa -b 4096
将 ~/.ssh/id_rsa.pub 中的内容添加到 https://github.com/settings/keys
测试ssh密钥,执行命令,成功返回 Hi xxxx! You’ve successfully authenticated, but GitHub does not provide shell access.
ssh -T git@github.com
使用Git从本地上传到GitHub
进入目标文件夹,执行命令初始化
git init
创建主分支
git branch -M main
创建本地仓库 origin
git remote add origin git@github.com:[用户名]/[GitHub上新建的远程仓库名].git
添加文件到缓冲区
# 添加指定文件 git add [文件名]
# 自动判断要添加的文件 git add .
然后提交文件到本地仓库
git commit -m '[注释]'
推送到GitHub
git push -u origin main
分支使用
git branch [分支名称] 创建分支
git checkout [分支名称] 切换分支
git merge [分支名称] 将指定分支合并到当前分支
当两个分支修改同一个文件后,在合并分支时会发生冲突,需要手动编辑被修改文件,解决冲突后再提交。在合并分支时,Git 会用 Fast Forward 模式,在这种模式下,删除分支后会丢掉分支信息。
可以添加参数 -no-ff 来强制关闭 Fast Forward 模式,在普通模式下,合并后的历史有分支,能看出来曾经做过合并。
git branch -d [分支名] 删除分支
git log ( –graph –pretty=oneline –abbrev-commit ) 产看分支的提交号
git branch [分支名称] [提交号] 恢复分支
提交Git代码
git pull 拉取服务器代码(在提交前,先拉取服务器上的代码,以防覆盖别人的代码)
git status 查看当前工作目录树修改状态
untracked::未追踪,此文件在文件夹中,但并没有加入git库,不参与版本控制。通过 git add 命令可将状态改为 Staged。
Modified:文件已修改,仅仅是修改,并没有进行其它的操作。
Deleted:文件已删除,仅在本地删除,在服务器还没有删除。
renamed:文件已改名。
git add [文件名] 提交文件到缓冲区
git commit -m ‘[注释]’ 添加到仓库
git push 将代码推送到服务器
git reset 撤回提交到缓冲区的文件
git reset -soft [提交号] 回退版本号,不恢复文件
git reset -hard [提交号] 回退到相应的版本