管理项目常用
基本命令操作---持续更新---
1. git 配置
$ git config --global user.name "你的用户名"
$ git config --global user.email "你的邮箱"
$ git config --global core.editor "vim"
$ git config --list
2. 创建初始化仓库 or 克隆仓库
$ cd /path/to/my/codebase (你的目标仓库文件夹)
$ git init (初始化仓库)=
$ git clone(你的目标仓库地址)
很多人没注意过如果取消对文件夹的初始化:
$ rm -rf .git
3. 提交仓库内容
$ git add .
$ git commit -m "Your commit message"
$ git status (查看仓库提交状态)
4. 推送&拉取仓库内容
- 拉取仓库最新内容
$ git pull (自动合并)
$ git fetch origin
从远程仓库 "origin" 获取最新的版本信息,但并不会自动合并到本地仓库。"origin" 通常是你克隆远程仓库时默认的别名。
$ git fetch -ap
-a 参数表示获取所有远程仓库的最新版本信息,
-p 参数表示在获取最新版本信息后,删除那些在远程仓库中已经被删除的分支对应的远程跟踪分支。这个命令也不会自动合并到本地仓库。
简单来说,这两个命令都是用来从远程仓库获取最新的版本信息,但是并不会自动更新你的本地仓库。
第一个命令只获取 "origin" 这个远程仓库的信息,而第二个命令获取所有远程仓库的信息并清理不存在的远程跟踪分支。
- 推送仓库内容
$ git push --set-upstream origin your branch (关联并推送远程分支,关联后下次只要git push就可以)
$ git push
5. 查看版本历史
$ git log (查看当前分支所有提交过的版本信息,不包括已经被删除的 commit 记录和reset的操作)
$ git reflog (查看所有分支所有操作信息)
6. commit 管理
6.1 commit 修改
$ git rebase -i HEAD~2 (数字代表修改以上几条commit)
-
点击键盘i进入编辑页面,将需要更改的commit 改为e => 点击键盘esc输入:wq 进行保存
edit commit 追加到上次修改记录 (可以更改commit 的 提交信息)
$ git commit --amend
$ git rebase --continue
$ git push -f (强制推送)
Note: 修改commit时出现冲突时不要执行amend,直接git rebase --continue
6.2 commit 合并
同5.1操作 只需修改commit commands,如下图所示:
edit commit
保存后会直接出现以下页面让你修改commit meassage 可以直接注释或者删除
edit commit message
git log 查看 现在commit只有一条commit message为test2的了
log
6.3 粘贴commit/分支
$ git cherry-pick 哈希值/分支名 指定的提交(commit)应用于其他分支
$ git cherry-pick first-commit^..last-commit //提交分支内的所有commit
$ git cherry-pick branch-name //提交分支内的最后一个commit
7. branch 管理
$ git branch (查看所有分支)
$ git checkout -b your branch name (切换并创建新分支)
$ git checkout your branch name (切换已有分支)
$ git branch -M your branch name (重命名已存在分支 )
$ git branch -D your branch name (删除分支 )
$ git branch -D `git branch --merged develop | egrep -v 'master|develop'`(清空本地无用分支)
8.暂存管理
$ git stash (存储)
$ git stash list (查看暂存列表)
$ git stash apply stash@{0} (应用某个暂存,不会删除暂存列表)
$ git stash pop stash@{0} (应用某个暂存,且从暂存列表中移除)
$ git stash drop stash@{0} (删除某个暂存)
$ git stash clear (清空暂存)
9. 关于撤销操作
--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
--soft 参数用于回退到某个版本
--hard 参数撤销工作区中,将暂存区与工作区都回到上一次版本,并
$ git reset (撤销git add)
$ git reset --soft HEAD~1
$ git reset --hard HEAD~1
$ git merge --abort (撤销合并)
10. 关于合并操作
$ git merge your_branch
$ git merge --continue