# git_command **Repository Path**: Andy_y_li/git_command ## Basic Information - **Project Name**: git_command - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-12-19 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Git常用命令 ### 远程仓库 * 添加远程仓库 ``` git remote add origin git@server-name:path/repo-name.git #添加一个远程库 ``` * 查看远程仓库 ``` git remote #要查看远程库的信息 git remote -v #显示更详细的信息 推送分支 git push origin master #推送到远程master分支 抓取分支 git clone git@server-name:path/repo-name.git #克隆远程仓库到本地(能看到master分支) git checkout -b dev origin/dev #创建远程origin的dev分支到本地,并命名为dev git checkout origin/dev --track #与上面效果一样 git pull origin master #从远程分支进行更新 git fetch origin master #获取远程分支上的数据 抓取GitHub上某个pull request到本地 git fetch origin pull/ID/head:BRANCHNAME git checkout BRANCHNAME $ git branch --set-upstream branch-name origin/branch-name,可以建立起本地分支和远程分支的关联,之后可以直接git pull从远程抓取分支。 ``` 另外,git pull = git fetch + merge to local * 删除远程分支 ``` $ git push origin --delete bugfix To https://github.com/dijia478/bos - [deleted] bugfix 或者直接push一个空分支 $ git push origin :bugfix To https://github.com/dijia478/bos - [deleted] bugfix 更新远程分支信息 项目往前推进的过程中,远程仓库上经常会增加一些分支、删除一些分支。 所以有时需要与远程同步下分支信息。 git fetch -p ``` ### 历史管理 * 查看历史 ``` git log --pretty=oneline filename #一行显示 git log -p -2 #显示最近2次提交内容的差异 git show cb926e7 #查看某次修改 版本回退 git reset --hard HEAD^ #回退到上一个版本 git reset --hard cb926e7 #回退到具体某个版 git reflog #查看命令历史,常用于帮助找回丢失掉的commit 用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,HEAD~100就是上100个版本。 ``` * 管理修改 ``` git status #查看工作区、暂存区的状态 git checkout -- #丢弃工作区上某个文件的修改 git reset HEAD #丢弃暂存区上某个文件的修改,重新放回工作区 ``` * 查看差异 ``` git diff #查看未暂存的文件更新 git diff --cached #查看已暂存文件的更新 git diff HEAD -- readme.txt #查看工作区和版本库里面最新版本的区别 git diff #在合并改动之前,预览两个分支的差异 使用内建的图形化git:gitk,可以更方便清晰地查看差异。当然 Github 客户端也不错。 ``` * 删除文件 ``` git rm #直接删除文件 git rm --cached #删除文件暂存状态 储藏和恢复 git stash #储藏当前工作 git stash list #查看储藏的工作现场 git stash apply #恢复工作现场,stash内容并不删除 git stash pop #恢复工作现场,并删除stash内容 ``` ### 分支管理 * 创建分支 ``` git branch develop #只创建分支 git checkout -b master develop #创建并切换到 develop 分支 合并分支 git checkout master #切换到主分支 git merge --no-ff develop #把 develop 合并到 master 分支,no-ff 选项的作用是保留原分支记录 git branch -d develop #删除 develop 分支 标签 ``` * 显示标签 ``` git tag    #列出现有标签 git show #显示标签信息 创建标签 git tag v0.1 #新建标签,默认位 HEAD git tag v0.1 cb926e7 #对指定的 commit id 打标签 git tag -a v0.1 -m 'version 0.1 released' #新建带注释标签 ``` * 操作标签 ``` git checkout #切换到标签 git push origin #推送分支到源上 git push origin --tags #一次性推送全部尚未推送到远程的本地标签 git tag -d #删除标签 git push origin :refs/tags/ #删除远程标签 Git 设置 ``` * 设置 commit 的用户和邮箱 ``` git config user.name "xx" #设置 commit 的用户 git config user.email "xx@xx.com" #设置 commit 的邮箱 git commit --amend --author "Jark Wu " #修改上次提交的用户信息 git config format.pretty oneline #显示历史记录时,每个提交的信息只显示一行 ```