新建分支
1 | git branch <branch_name> |
例如新建dev分支并将其推送到远程仓库
1 | git branch dev |
其中git checkout dev
命令从master、分支切换到dev分支.
如果出现下面的错误
1 | fatal: No destination configured to pus to. |
说明缺少推送的目标地址,解决方法有两种
- 添加目标地址参数
1 | git push git@github.com:xxx/xxx.git |
- 设置默认参数
1 | git remote add origin git@github.com:xxx/xxx.git |
- 查看当前所有分支信息
1 | git branch -av |
用户名和邮箱地址
- 查看
1 | git config user.name |
- 修改
1 | git config --global user.name "username" |
配置ssh key
- 打开终端,输入
1 | ssh-keygen -t rsa -C 'xxxx@xxx.com' |
- 根据提示输入密码,一路回车,会在用户文件夹的.ssh下生成三个文件:id_rsa id_rsa.pub knowm_hosts
- 进入Github个人主页–settings–点击SSH and GPG keys
- 打开id_rsa.pub,将其中的内容复制到github的ssh key 输入框里面
- 之后就可以正常的用git来同步开发项目了。
创建完仓库之后,将本地项目和该仓库关联的步骤:
①先cd到本地项目的文件夹,执行:git init
②添加自述文件:git add README.md
add所有的文件
1 | git add -u |
③将代码提交到本地仓库先 :git commit -m “first commit” //“”是注释,任意写
④ 将本地项目和远程仓库关联: git remote add origin https://github.com/xxx(一般是你的邮箱名)/xxx(仓库名称).git
将本地项目和远程项目进行合并
1 | git pull --rebase origin master |
⑤将本地代码push到远程仓库: git push -u origin master
把远程仓库的代码合并到本地仓库,但不会提交本地的代码
1 | git pull <远程主机名> <远程分支名>:<本地分支名> |
因为已经和远程仓库关联,因此用origin代替远程主机名
1 | git pull origin Branch.v0.1.1828_dev:Branch.v0.1.1828_dev |
push的时候如果暴力一点可以直接
1 | git push |
清除本地分支
Git如果在远程仓库上删除了某一分支,并不会删除本地的远程追踪分支。这时候,可以使用如下命令查看那些分支需要清理:
1 | $ git remote prune origin --dry-run |
1 | Pruning origin |
可以看到,有两个远程分支已经失效,将会被清理,执行
1 | $ git remote prune origin |
这样,就完成了无效的远程追踪分支的清理工作。
需要注意,这里远程追踪分支批位于.git/refs/remote/origin 下的分支,如果有本地分支被check out的话,还需要手动清理
1 | $ git branch -vv |
无效的远程追踪分支会以gone来标识
删除无效的本地分支命令:
1 | $ git branch -d Branch.v1.0.1908_unionpay |
添加Tag
打印所有标签
1 | $ git tag |
查看对应标签状态
1 | $ git checkout <版本号> |
附注标签是一个独立的标签对象,包含了名称时间戳以及标签备注等信息,同时指向对应的commit,定义方法如下:
1 | $ git tag -a <版本号> -m "<备注信息>" |
删除本地标签
1 | $ git tag -d <版本号> |
同创建本地标签一样,删除了本地标签之后也要同时删除远程仓库的标签
1 | $ git push origin --delete <版本号> |
推送本地标签到远程仓库
1 | $ git push origin --tags |
推送指定版本的标签
1 | $ git push origin <版本号> |
撤销操作
git revert
提交代码,如果有问题,可以使用git revert
撤销掉该提交,执行以下命令:
1 | $ git revert HEAD |
在当前提交后面新增一次提交,抵消掉上一次提交导致的变化。该命令只能抵消上一个提交,如果想抵消多个提交,必须在命令行依次指定这些提交。
1 | $ git revert [bdc92c7ab9f82bdcc56] [c6e60b6705359d05dde] |
git revert命令还有两个参数
--no-edit
:执行时不打开默认编辑器,直接使用Git自动生成的提交信息--no-commit
:只抵消暂存区和工作区的文件变化,不产生新的提交
git reset
让以前的提交彻底消失,而不是抵消掉,可以使用git reset
命令。丢弃掉某个提交之后的所有提交。
1 | $ git reset [c6e60b6705359d05dde] |
默认情况下,该命令只改变暂存区,不改变工作区的文件。--hard
参数可以让工作区的文件也回到之前的状态。
1 | $ git reset --hard [c6e60b6705359d05dde] |
使用该命令,工作区的文件一旦撤销,再也无法找回。