Git拉取远程分支到本地
git fetch origin xxx // xxx替换为远程分支名
git checkout -b xxx origin/xxx // origin/xxx替换为远程分支名
分支合并到项目仓库
git remote add origin xxx 关联private仓库
git fetch --all 更新两个remote版本库信息
git checkout -b xxx 创建项目分支(基本用不到,PLM会自动创建分支)
git merge xxx 合并xxx分支到项目仓库
git push origin xxx 推送到远程项目分支
将某分支的某次提交合并到另一分支
git checkout develop 切换到develop分支
git log 查找需要合并的commit记录,比如commitID:7fcb3defff
git checkout master 切换到master分支
git cherry-pick xxx 该条commit记录合并到了master分支
git pull origin master 提交master到远程
本地新建分支并推送至远程分支
git branch 查看当前分支
git branch -a 查看所有分支,包含远程分支
git checkout -b ying 新建分支
git push origin ying:ying .推送本地分支到远程分支(远程分支与本地分支同名)
git branch --set-upstream-to=origin/ying .让本地分支与远程分支建立关联
解决本地代码修改后的冲突
git stash 备份当前工作区内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前工作区内容保存到Git栈中
git pull 拉取服务器上当前分支代码
git stash pop 从Git栈中读取最近一次保存的内容,恢复工作区相关内容。同时,用户可能进行多次stash操作,需要保证后stash的最先被取到,所以用栈(先进后出)来管理;pop取栈顶的内容并恢复
git config
git的设置命令
git config --list 显示当前git的配置信息
git config -e 编辑git配置文件,针对当前仓库
git config -e --global 针对系统上所有仓库
示例:
git config --global user.name "xxx"
git config --global user.email xxx
git status
查看上次提交后是否对文件进行再次修改
git status -s 获取简短的输出结果
git diff
比较文件的不同,比较工作区与暂存区的差异
git diff 查看尚未缓存的改动
git diff --cached 查看已缓存的改动
git diff HEAD 查看已缓存与未缓存的所有改动
git diff --staged 查看摘要而非整个diff
git diff [first-branch] ... [second-branch] 显示两次提交之间的差异
git reset
回退版本,指定回退到某一次提交的版本
git reset [--soft | --mixed | --hard] [HEAD]
--mixed 为默认,用于重置暂存区的文件与上一次的commit保持一致,工作区内容保持不变
git reset HEAD^ 回退所有内容到上一个版本
git reset HEAD^ [file] 回退指定文件的版本到上一个版本
git reset 052e 回退到指定的版本
--soft 用于回退到某个版本
git reset --soft HEAD~3 回退到上上上一个版本
--hard 撤销工作区所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前所有的信息提交
git reset --hard HEAD
HEAD 表示当前版本
HEAD^ 上一个版本
HEAD^^ 上上一个版本
HEAD^^^ 上上上一个版本
git rm
用于删除文件
git rm 将文件从暂存区和工作区删除
git rm -f 强制删除选项-f,用于删除之前修改过并且已经放在暂存区域的文件
git rm --cached 把文件从暂存区移除,但是保留在当前工作目录
git rm -r * 递归删除整个目录下所有子目录和文件
git mv
用于移动或重命名一个文件,目录,或软连接
git mv [file] [newfile] file文件名重命名newfile
git mv -f [file] [newfile] 新文件名已存在,还是要重命名,使用-f参数
git log
查看提交历史
git blame 以列表形式查看指定文件的历史修改记录
git log --oneline 查看历史记录的简洁的版本
git log --graph 查看历史中出现了分支、合并
git log --reverse 逆向显示所有日志
git log --author=name 查找指定用户的提交日志
git log --since | --before | --until | --after 查找指定时间开始,之前,之后的记录
git tag
git tag -a v1.0 创建一个带注解的标签
git tag -a -m ''备注" 指定标签信息命令
git tag -s -m "备注" PGP签名标签命令
git ls-remote -t 查看远程 tags
git tag -l 查看本地 tag
git push origin --delete tag xxx 删除远程 tags
git tag -f xxx 更新tag
git push origin -f xxx 推送tag
git tag -d xxx 删除本地 tag
git fetch origin --prune-tags 拉取远程 tags
git init
初始化git仓库,生成一个.git目录
git clone
从现有仓库拷贝项目,命令如下:
git clone
参数说明:
-
repo:Git 仓库。
-
directory:本地目录
git remote
用于在远程仓库的操作
git remote -v 会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL
git remote show [remote] 显示某个远程仓库的信息
git remote add [shortname] [url] 添加远程版本库
git remote rename old_name new_name 修改仓库名
git fetch
用于从远程获取代码库,执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看
git fetch [alias] 从远程获取它有你没有的数据
git pull
用于从远程获取代码并合并本地的版本,git pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写
git pull <远程主机名> <远程分支名>:<本地分支名>
示例:
git pull origin master:brantest 将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并
git add
添加文件到暂存区
git add [file1] [file2] ... 添加一个或多个文件到暂存区
git add [dir] 添加指定目录到暂存区,包括子目录
git add . 添加当前目录下的所有文件到暂存区
git commit
将暂存区的内容添加到本地仓库
git commit -m [message] 提交暂存区到本地仓库
git commit [file1] [file2] ... -m [message] 提交暂存区指定的文件到本地仓库
git commit -a 修改文件后不需要git add直接提交文件
git push
用于从将本地的分支版本上传到远程并合并
git push <远程主机名> <本地分支名>:<远程分支名>
git push --force origin master 如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数
git push origin --delete master 删除主机的分支
git branch
创建分支
git branch (branchname) 创建分支命令
git branch -d (branchname) 删除分支
git checkout
切换以及创建分支
git checkout # 分支切换
git checkout - # 切换到上一个分支
git checkout -b # 从当前分支创建并切换到本地分支
git checkout -b origin/ # 从远程分支中创建并切换到本地分支
git merge
分支合并
git merge [alias]/[branch] 将服务器上的任何更新(假设有人这时候推送到服务器了)合并到你的当前分支
git stash
将工作区合暂存区的修改存储到“储藏栈”(stash stack)的缓存区中
git stash # stash文件
git stash pop # 将位于栈顶的修改弹出
git stash list # 列出所有储藏栈内容,例如:stash@{0}: WIP on workbranch: 56cd5d4 Revert "update old files"; stash@{1}: WIP on project1: 1dd87ea commit "fix typos and grammar"
git stash pop stash@{1} # 恢复指定序号的修改,将弹出1dd87ea,也可用apply替代pop
git cherry-pick
将指定的提交(commit)应用于其他分支,简称“捡取”
注意:cherry-pick会产生一个新的commit id,与被捡取的提交哈希值不同。
git cherry-pick 77421b5afe0 # 将77421b5afe0捡取到当前分支
git cherry-pick ^.. # 拾取start-commit-id ~ end-commit-id区间的提交
git reflog
可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录
git reflog show 查看当前分支是基于哪个分支创建
git ls-files
显示工作区的文件的信息
git commit --no-verify -m
跳过husky与pre-commit检测机制