- git add
# 添加指定文件到暂存区
$ git add <file1> [<file2>] ...
# 添加指定目录到暂存区,包括子目录
$ git add <dir>
# 添加当前目录的所有文件到暂存区
$ git add .
# 添加每个变化前,都会要求确认.对于同一个文件的多处变化,可以实现分次提交
$ git add -p
- git commit
# 提交暂存区到仓库区
$ git commit -m "message"
# 提交暂存区的指定文件到仓库区
$ git commit <file1> [<file2>] ... -m "message"
# 提交工作区自上次commit之后的变化,直接到仓库区
$ git commit -a
# 提交时显示所有diff信息
$ git commit -v
- git branch & git checkout
# 列出所有本地分支
$ git branch
# 列出所有远程分支
$ git branch -r
# 列出所有本地分支和远程分支
$ git branch -a
#将远程分支拉取到本地,同时本地创建一个分支
$ git checkout -b 本地分支名 origin/远程分支名
# 切换到指定分支,并更新工作区
$ git checkout <branch-name>
# 新建一个分支,并切换到该分支
$ git checkout -b <branch-name>
#相当于
$ git branch <branch-name>
$ git checkout <branch-name>
# 新建一个分支,并切换到该分支,指向某个tag
$ git checkout -b <branch> <tagname>
# 切换到上一个分支
$ git checkout -
- git push & git pull
# 上传本地指定分支到远程仓库
$ git push origin <branch>
# 推送所有分支到远程仓库
$ git push origin --all
# 取回远程仓库的变化,并与本地分支合并
$ git pull origin <branch>
- 其他
# 显示了可以抓取和推送的远程库的地址
$ git remote -v
origin git@git.dev.tencent.com:lqsheng/catkin_qs.git (fetch)
origin git@git.dev.tencent.com:lqsheng/catkin_qs.git (push)
# 查看当前状态
$ git status
- q1:如果拉取远程仓库otb分支的内容git pull origin otb 失败怎么破?
需要先‘ git add . ’ 然后 git commit "message" 然后 git pull origin otb。
- q2:我是想拉取远程otb分支覆盖到本地otb分支,那么我add被修改的文件到本地otb分支有啥用呢?
不知道啊,谁来告诉我?
- q3:我不想要本地修改的啊,我只想拉取远程仓库的内容覆盖本地咋整?
如下
#强制拉取远程otb分支覆盖本地分支
$ git fetch --all
$ git reset --hard origin/otb
$ git pull
#或者
$ git fetch --all && git reset --hard origin/otb && git pull
- git pull origin xx 拉取下来后完全是远程的内容还是自动merge了本地的?自动merge是怎么个merge法呢?
如果对上次远程pull到本地的文件进行了修改,再次pull时远程未改动,那么此时pull后自动保存你修改后的版本。如果对上次远程pull到本地的文件进行了修改,但是再次pull时的远程版本与你上次pull的远程版本不同,则会提示冲突让你手动合并。