Git经验总结
前言
做为一个程序员版本控制工具的使用是必不可少的,现在就把日常工作中我认为比较实用的Git工具的命令记录下来。
命令(${name}–变量)
初始化与基本命令
#初始化 git 仓库
git init
#初始化 git 信息
git config --global user.name ${your name}
git config --global user.email ${your e-mail}
#git 自动记住密码(这会在 gitconfig 目录下创建一个文件,用于记录账号和密码) --global 代表全局
git config --global credential.helper store
#查看git状态 可展示当前分支、暂存区状态、文件修改、文件新增等
git status
#查看版本历史(commit_id、提交时间、提交作者、说明)
git log
本地
-
提交暂存区
#他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new)。 #但不包括被删除的文件。(git2 貌似也包括删除的文件 跟git add -A差不多) git add . #他仅监控已经被add的文件(即 tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。 #git add --update的缩写 git add -u #git add -A :是上面两个功能的合集(git add --all的缩写) git add -A #提交单个文件到暂存区 filePath 为文件路径 git add ${filePath}
-
提交到本地
#提交到本地分支 message为更新信息说明 git commit -m ${message} #提交所有信息到 加的-a参数可以将所有已跟踪文件中的执行"修改"或"删除"操作的文件都提交到本地仓库,即使它们没有经过 git add 添加到暂存区 #注意新加的文件(即没有被git系统管理的文件)是不能被提交到本地仓库的 git commit -a -m ${message} #追加提交,它可以在不增加一个新的 commit-id 的情况下将新修改的代码追加到前一次的 commit_id 中 git commit --amend #获取更多帮助 git commit --help
-
数据回退相关
#撤回放到暂存区的文件 git reset HEAD ${filePath} #测绘指定文件 git reset . #撤回所有在暂存区的文件内容 #本地提交回退 git reset --soft HEAD^ #可多次使用一直撤回 #已追踪文件回退 git reset --hard #回退所有已追踪文件到最近一次提交 git reset --hard ${commit_id} #回退到指定的版本 commit_id 可以不是完整的,但是要能够代表想要回退的版本 git checkout -- ${filePath} #撤回 filePath 中未提交到暂存区的数据 对未最追踪的文件无效 #未追踪文件删除 #其中 -f 表示文件 -d 表示目录, -n 代表查看将要删除的数据。如果还要删除.gitignore中的文件那么再加上 -x #git clean -f -d或者git clean -fd就可以了。 git clean -fdnx #较快的删除未跟踪文件 思路先所有添加到缓存区让git追踪文件再还原文件我还喜欢再后面加个git pull 一起使用 git add . && git reset --hard HEAD [&& git pull]
分支相关
#创建分支
git branch ${branch_name}
#分支切换
git checkout ${branch_name}
#创建并切换到分支
git checkout -b ${branch_name}
#分支列表,标 * 的为当前所在分支
git branch [-a] # -a 就是查看所有分支(包括远程分支),没有则只查看本地分支
#分支合并
git merge ${name} #合并分支 到当前所在分支
#删除dev分支
git branch -d ${branch_name}
#本地分支绑定远程分支
#绑定远程仓库 git_url 为远程远程仓库地址
git remote add origin ${git_url}
#本地分支绑定远程分支 remote_branch 远程分支名称 local_branch 本地分支名称
git branch --set-upstream-to=origin/${remote_branch} ${local_branch}
远程
#远程克隆
git clone ${git_url} -b ${branch_name} ${filePath} #通过 http/https 协议从远程克隆岛本地并指定分支和克隆保存文件
#远程拉取
git pull
#提交到远程
git push
#同步远程分支信息
git fetch
#在本地创建一个跟远程分支同名的分支(适用于远程创建了新分支本地第一次拉取)
git checkout --track origin/${branch_name}
#删除远程分支
git branch -r -d origin/${branch_name }
git push origin:${branch_name}
#本地新分支提交到远程
git push --set-upstream origin ${branch_name}