Github时常会用到,但是每每有一段时间不用后,很多操作就会都忘得一干二净,因此就有了将自己常用的Github命令整理下来方便查询。然后准备先以菜鸟教程的《Github 简明教程》为模板,摘抄一部分自己有用的,后面慢慢增加自己的东西。
配置Git
创建SSH Key
首先在本地创建ssh key:
ssh-keygen -t rsa -C "your_email@youremail.com"
创建过程中会询问路径和密码,全部默认就好,结束后就可以在相应位置/home/***/.ssh/id_rsa.pub
看到相应的key
,这时候复制然后进入Github,在设置中找到SSH Keys,然后添加相应的SSH Keys。
之后,在终端中输入:
ssh -T git@github.com
如果是第一次的会提示是否continue,输入yes就会看到:You've successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上Github。
设置用户
在Github每次commit
的时候,都需要用到上传者相关信息,所以一开始需要进行设置:
git config --global user.name "your name"
git config --global user.email "your_email@youremail.com"
上传流程
# 克隆到本地仓库
git clone git@github.com:snowdreams1006/git-demo.git
# 切换到当前项目
cd git-demo
# 创建新文件
touch test.txt
echo "add test.txt" > test.txt
# 添加文件到暂存区
git add test.txt
# 提交文件到本地仓库
git commit -m "add test.txt"
# 推送到远程仓库
git push origin main
这部分代码来自github 入门教程· 雪之梦技术驿站。
假如是创建新的仓库,可以使用 git init
来完成。
使用 git add
命令时如果添加不止一个文件,可使用 git add *
将所有改变文件添加至暂存区。
分支
创建分支并切换:
git checkout -b feature_x
切换分支:
git checkout master
删除分支:
git branch -d feature_x
合并、更新
更新你的本地仓库至最新改动:
git pull
以在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。
要合并其他分支到你的当前分支(例如 master),执行:
git merge <branch>
在这两种情况下,git 都会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。 这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:
git add <filename>
在合并改动之前,你可以使用如下命令预览差异:
git diff <source_branch> <target_branch>
添加、查看仓库关联
将本地仓库和远程仓库之间建立关联:
git remote add origin git@github.com:yourName/yourRepo.git
查看当前配置哪些远程仓库:
git remote
替换本地改动
假如你操作失误,你可以使用如下命令替换掉本地改动:
git checkout -- <filename>
此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。
假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:
git fetch origin
git reset --hard origin/master