Git常用操作
一、设置用户信息
# 设置用户名 git config --global user.name "用户名" # 设置邮箱 git config --global user.email "邮箱" # 查看全局属性 git config --global --list # 取消全局属性 git config --global --unset user.name
二、生成SSH公私钥
# 通过ssh-keygen指令,git会在当前的用户目录下生成一对公私钥 # (id_rsa)是私钥 # (id_rsa.pub)是公钥 ssh-keygen -t rsa -C "邮箱"
三、登录github
1、进入github官网 2、点击头像 3、点击settings 4、点击SSH and GPG keys 5、找到SSH keys,点击New SSH key 6、在key输入框中,输入公钥(id_rsa.pub),点击Add SSH key
小插曲:验证和github的连接
ssh -T git@github.com
# 显示连接信息
ssh -v git@github.com
四、克隆远程仓库项目
# 克隆远程仓库中的项目,在远程仓库右上角的code上选择ssh然后复制下面的url git clone {url} # 克隆指定分支 git clone -b {分支名} {url} # 查看当前分支 git branch # 修改文件后,需要把文件从工作区提交到暂存区 git add 文件名 / git add . # 从暂存区提交到本地仓库 git commit -m "写一句话描述修改了什么" # 推到远程仓库 git push # 推到指定分支 git push <地址名> <分支名> # 从远程仓库拉 git pull # 查看git本地仓库状态 git status # 查看日志 git log git log --pretty=oneline
pull request
1、去到目标项目 Fork(叉)这个项目到自己的库下面 2、去到自己的库中clone下来,注意clone的库不要弄错,确认是自己的库 3、本地修改完成后,push回自己的库 4、回到自己的github页面,在 Repositories 中找到对应的库,点击 5、点击 <>code 旁边的 Pull requests 6、点击New pull request 7、检查或填写一下pullrequest的库,分支等,一般默认会自动填写 8、没有问题就点击 create pull request 9、填写一下你做了什么 10、再次点击 create pull request 11、完成
修改/增加 git push/pull 的地址
# 查看远程仓库地址 (fetch)拉下来的地址,(push)提交的地址 git remote -v # 添加远程仓库地址 git remote add <自定义名> <远程仓库SSL地址> # 删除远程地址 git remote rm origin # 更换远程地址 git remote add origin <URL> # 把当前分支与远程分支关联 git push --set-upstream origin <我的分支名>
版本回滚
HEAD:指向当前分支最新的commit
Index:也被称为staging area 指一整套即将被下一次提交的文件集合,下文中称它为 暂存区
Working Copy:代表你正在工作的那个文件集 ,下文中称它为 工作区
# 查看日志,找到要重置的commitID git log # --hard 工作区和暂存区都会被清空,修改完全被重置 git reset --hard <commitID> # --soft 当前commit版本 和 回滚commit版本之间的变更,都会被存放在暂存区中 git reset --soft <commitID> # --mixed 这也是reset的默认参数,当前commit版本 和 回滚commit版本之间的变更,都会被存放在工作区中 git reset --mixed <commitID> ### 回滚已经push到远程的变更,git revert实际上会产生一次新的commit,因此可以继续push到远程仓库 ### 注意:使用git revert时要确保 工作区 和 暂存区 是干净的 ### 撤销最近一次commit git revert HEAD # 撤销指定的版本的commit git revert <commitID>
撤销变更
# 撤销 工作区 中的文件变更 git restore <文件名> # 或者可以使用 checkout 切记:使用checkout不能忘记“--” 因为“git checkout”还可以用于分支管理的高级功能 git checkout --文件名 # 撤销 暂存区 中的文件变更 # 先把文件退回到 工作区 git reset HEAD <文件名> # 然后 撤销文件变更 git restore <文件名>
分支管理
每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。
HEAD指向的就是当前分支
# 创建分支 git branch <分支名> # 切换分支 git checkout <分支名> # 查看分支 git branch # 合并分支 git merge <分支名> # 删除分支 git branch -d 分支名>