Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Git 的基本操作 #13

Open
yangrenmu opened this issue Jul 7, 2019 · 0 comments
Open

Git 的基本操作 #13

yangrenmu opened this issue Jul 7, 2019 · 0 comments
Labels

Comments

@yangrenmu
Copy link
Owner

前言

一些废话,请自行跳过前言。
版本控制可以记录一个或多个文件的变化,方便我们在将来对文件进行控制。使用版本控制,我们对文件进行修改删除等任意操作后,仍可以轻松将文件恢复到原先的样子。
git则是一个分布式版本控制系统,每个人的电脑都是一个完整的版本库,安全性高于集中式的版本控制系统。因为个人电脑坏掉不要紧,其他人电脑上还有完整的版本库代码。集中式的话,中央服务器坏掉,所有人都无法工作了,因为需要从中央服务器拉取代码。

一些基本概念

  • 工作区:本地的工作目录,可以直接对文件进行修改等操作。
  • 暂存区:临时保存本地文件的修改。
  • 本地仓库:记录本地所有提交版本,对应本地.git文件。
  • 远程仓库:保存我们远程代码。

git 的工作流程

  • 首先克隆远程仓库到本地,使用命令git clone
  • 在工作区修改代码。
  • 将修改的代码添加到暂存区,使用命令git add .
  • 将暂存区的文件提交到本地仓库,使用命令git commit -m 'some message'
  • 将本地仓库的代码提交到远程仓库,使用命令git push

一些常用的命令

git clone: 克隆项目到本地。
git init:初始化一个本地仓库。
git push: 推送本地仓库到远程仓库。
git pull:拉取远程仓库代码到本地仓库。

// branch 相关
git branch xxx: 创建一个 xxx 分支。
git branch -a:查看本地和远程的所有分支。
git checkout xxx:切换到 xxx 分支。
git checkout -b xxx:创建 xxx 分支,并切换到 xxx 分支。
git branch -d xxx: 删除本地 xxx 分支,对于未合并的分支,使用 -D,强制删除。
git push --delete xxx: 删除远程 xxx 分支。
git merge [branch]:合并 branch 到当前分支。
git cherry-pick [commit]:选择一个 commit ,合并到当前分支。

// add 相关
git add [filename]: 添加未跟踪/已更改的文件到暂存区。
git add [目录]:添加该目录下所有文件到暂存区。
git add . : 添加所有未跟踪/已修改的文件到暂存区。
git add -f [filename]: 强制添加文件到 git 版本控制中。有些文件 git 追踪不到时,可以使用该命令。

// commit 相关
git commit -m 'some message': 将暂存区文件提交到本地仓库中。
git commit -a -m 'some message': 将工作区文件添加到暂存区,然后将暂存区文件提交到本地仓库中。

// 查看信息相关命令
git log: 显示提交的版本历史。
git log -p: 显示每次提交的更改。
git log -p [file]:显示 file 文件的每次提交 diff 
git diff:查看工作区和暂存区的不同。
git diff --cached: 查看暂存区和本地仓库之间的不同。
git diff [commitId]:查看工作区和某次提交之间的不同。
git diff [commitId] [commitId]: 查看两次提交之间的不同。

// 回退相关
git checkout [file]: 恢复暂存区指定文件到工作区。
git checkout . : 将暂存区所有文件恢复到工作区。
git reset --hard [commit]:回退到某次提交,同时重置工作区和暂存区与该次 commit 一致。

// stash 相关
git stash:将工作区文件保存到暂存区。
git stash list:查看 stash 历史列表。
git stash pop:取回最近一次的 stash 到工作区, 同时在暂存区删除该次 stash。

// tag 相关
git tag: 列出所有 tag 
git tag [tagname]:新建一个 tagname 在当前 commit。
git tag -d [tag]:删除本地 tag
git push origin :refs/tags/tagname: 删除远程 tag
@yangrenmu yangrenmu added the git label Jul 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant