下面是对工作过程中经常接触到的Git命令的简单总结,详细资料来源补充在文章末尾
常用命令
本地仓库
初始化本地仓库
在当前目录下生成.git隐藏文件夹,
git init
拉取远程项目到本地
获取项目的远程仓库版本,<url>是git仓库地址
git clone <url>
关联远程仓库
关联本地仓库到指定的远程仓库,本地仓库,可以关联若干个远程仓库
//列出已关联的远程仓库
git remote
//列出已关联的远程仓库和仓库地址
git remote -v
//关联远程仓库
git remote add <name> <url>
//显示远程仓库信息
git remote show <name>
添加和提交文件文件
添加当前目录下的文件到暂存区
//添加目录下所有文件
git add .
//添加指定文件
git add <file name>
//取消添加所有文件
git reset HEAD
//取消添加指定文件
git reset HEAD <file>
//重置到代码上一次提交完毕的状态,清除本次修改的所有内容
git reset --hard HEAD
//放弃文件的修改,重置文件内容
git checkout -- <file>
//查看目录下文件的改动和添加状态
git status
//提交文件和注释
git commit -m "<注释内容>"
推送文件
完成文件的提交后,在本地仓库九二一看到提交的内容,远程仓库需要推送后才能看到
//推送本地分支到指定的远程分支
git push <远程仓库名> <本地分支>:<远程分支>
//省略远程分支,本地分支与远程分支存在追踪关系/或者在远程新建同名分支
git push <远程仓库名> <本地分支>
//删除远程分支
git push <远程仓库名> <远程分支>
//若当前分支与远程分支存在追踪关系,两者都可以省略
git push <远程仓库名>
//推送本地所有分支
git push --all <远程仓库名>
//推送标签,不会推送分支
git push -tags <tag>
分支操作
//查看本地分支
git branch
//查看远程分支
git branch -r
//创建新分支
git branch <branch>
//切换到指定分支
git checkout <branch>
//创建并切换到指定分支
git checkout -b <branch>
//比较当前分支与指定分支的差异
git checkout -p <branch>
获取远程信息
//拉取远程仓库最新的更新到本地,由用户自己选择是否合并文件
//可以通过git log -p FETCH_HEAD 来查看fetch获取的内容
//获取所有分支的更新
git fetch <远程仓库>
//获取指定分支的更新
git fetch <远程仓库> <分支>
//获取远程分支的更新并合并
//相当于执行了fetch和merge操作
//与指定本地分支合并
git pull <远程仓库> <远程分支>:<本地分支>
//与当前分支合并
git pull <远程仓库> <远程分支>
//合并操作,合并指定分支到当前分支
git merge <branch>
资料来源
ps:github远程仓库,每次fetch/push操作,要输账号密码,并且容易出现443/10041错误
使用github提供的Personal access tokens,可以解决这样的问题
--Personal access tokens的获取
登录github,点击头像,Settings / Developer settings,进入创建Personal access tokens界面
马赛克遮挡的是token自定义名称
点击Generate new token,进入创建界面,有很多权限可以选择,自己配置,推荐把gist/workflow也勾选上
点击创建后,会看到token值,一定要保存倒本地文件里,只有初始创建能看到,如果后续丢失,只会重新创建新的token,无法找回
--Personal access tokens的使用
拿到token以后,在clone/add remote时,就可以通过以下方式来访问github了
https://$GH_TOKEN@github.com/owner/repo.git