git init 初始化一个Git仓库(创建一个仓库)
git add [文件名xxx] 把工作区的文件修改添加到暂存区
git commit -m “xxxx” 将暂存区的文件修改提交到分支
常用命令
命令 | 作用 |
---|---|
git diff [文件名xxx] | 查看修改了什么内容 |
git log | 显示从最近到最远的提交日志(可以显示版本号),显示提交历史 |
git reset HEAD^ | 回退到上个提交记录(撤销修改) |
git revert HEAD^ | 回退到上个提交记录(撤销修改, 用于远程提交可以共享, 与上一个实现细节不同) |
git checkout [分支名字xxx] | 切换到xx分支或xx提交记录 |
git checkout -b [分支名字xxx] | 新建分支并切换到该分支 |
git status | 查看状态 |
git branch -d | 删除分支 |
git merge [分支名字] | 合并分支(创建新的分支提交) |
git rebase [分支名字] | 合并分支(复制修改到新的分支后然后合并) |
git cherry-pick | |
git fetch | 从远程仓库下载提交(并没有修改本地) |
git pull | 是fetch和merge的简写(拉取远程仓库的提交并合并) |
git pull --rebase | 是fetch和rebase的简写 |
git push | 推送提交(不加参数默认根据分支的属性来推送) |
git checkout -b [新分支名字] origin/master | 新建分支并把这个分支与远程仓库的master分支相关联 |
git branch -u origin/master [分支名] | 把这个分支与远程仓库的master分支相关联 |
git push origin master git push origin xx分支 | 把本地master分支上的提交推送到远程仓库的origin/master分支上 把本地xx分支上的提交推送到远程仓库的origin/xx分支上 master同时指定了提交记录的来源和去向 |
git push origin <来源>:<目的地> git push origin master:newBranch | 分别指定提交记录的来源和去向, 来源可以是任何Git能识别的位置例如(HEAD^, HEAD~3, master^), 如果远程仓库不存在目的地的分支, Git会自动创建 |
rebase和merge的优缺点:
-
rebase的优点: 更干净的提交树
-
缺点: 提交历史看起来像是之后提交的, 其实是之前提交的(或并行的).不保留提交历史.
-
merge的优点: 保留提交历史
-
缺点: 提交树不如rebase干净
git cherry-pick [commit号码] 同样的bug,要在dev上修复,我们只需要把4c805e2 fix bug 101这个提交所做的修改“复制”到dev分支。注意:我们只想复制4c805e2 fix bug 101这个提交所做的修改,并不是把整个master分支merge过来。
git branch -D [分支名字] 强制删除未合并的分支
git remote 查看远程库的信息
git remote -v 显示远程库的详细信息
把本地库的内容推送到远程,用git push命令
不常用命令
命令 | 作用 |
---|---|
git reflog | 查看命令历史(可以显示"未来"的版本号) |
git branch | 查看目前的分支情况 |