Git命令操作指南
Git全局设置
# 查看当前用户和邮箱
git config user.name
git config user.email
# 配置当前仓库
git config user.name "sangang"
git config user.email "25394264@qq.com"
# 全局配置
git config --global user.name "sangang"
git config --global user.email "25394264@qq.com"
推送现有文件夹(项目)到Git远程仓库
# 切换到我们的项目目录下
cd spider-service
# 初始化git
git init
# 添加远程仓库并命名为origin
git remote add origin http://gitlab.com/sangang/spider-service.git
# 列出远程仓库详细信息
git remote -v
# 添加所有修改的和新建到数据暂存区
git add .
# 提交文件到本地库
git commit -m "Initial commit"
# 查看远程的分支名
git branch -r
# 提交文件到远程库master分支,-u参数指定主机
git push -u origin master
创建一个新的仓库
# 克隆工程
git clone http://gitlab.com/sangang/spider-service.git
# 切换到工程
cd spider-service
# 创建文件
touch README.md
# 添加文件README.md到数据暂存区
git add README.md
# 提交到本地仓库
git commit -m "add README"
# 推送到远程仓库master分支,-u参数指定主机
git push -u origin master
推送现有的Git存储库
# 切换到工程
cd spider-service
# 远程仓库重命名
git remote rename origin old-origin
# 添加新的远程仓库并命名为origin
git remote add origin http://gitlab.com/sangang/spider-service.git
# 列出远程仓库详细信息
git remote -v
# 将本地的所有分支都推送到远程主机,-u参数指定主机
git push -u origin --all
# git push的时候不会推送标签,如果一定要推送标签的话那么可以使用这个命令
git push -u origin --tags
Git branch
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
或者git switch <name>
将远程分支拉到本地:git fetch origin dev
将远程指定分支拉到本地:git checkout -b dev origin/dev
将远程分支拉取到本地:git pull origin dev
创建+切换分支:git checkout -b <name>
或者git switch -c <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
Git status
查看当前状态:git status
Git push
在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了。
git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名> ,例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名,第一个master是本地分支名,第二个master是远程分支名。
1、git push origin master
如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。如果当前分支与多个主机存在追踪关系,则可以使用 -u 参数指定一个默认主机
2、git push origin :refs/for/master
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin --delete master
3、git push origin
如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支
4、git push
如果当前分支只有一个远程分支,那么主机名都可以省略,形如 git push,可以使用git branch -r ,查看远程的分支名
5、git push -u origin --force
git push前需要先git pull更新最新的远程仓库版本到本地,如果本地版本库比远程服务器上的低,那么一般会提示你git pull更新,如果要强制提交,可以使用这个命令。
6、关于 refs/for
refs/for 的意义在于我们提交代码到服务器之后是需要经过code review 之后才能进行merge的,而refs/heads 不需要