一、相关网站
二、Git文件的三种状态
- 已修改(modified)
- 已暂存(staged)
- 已提交(commited)
- 工作区(开发) --> 暂存区( add ) --> 版本库(commit)
三、Git基本命令
- git init 初始化。生成.git文件夹和里面一系列文件。
- git add text.txt(添加文件到暂存区)
- git rm --cached text.txt(将文件回退到工作区)
- git commit -m 'init message' 提交修改的文件到版本库
git commit --amend -m '修正提交信息'
git commit -am '添加并提交' - git checkout -- text.txt 将版本库的内容覆盖到当前文件
- git status 查看当前状态
- git rm text.txt 删除文件,将删除文件纳入到暂存区。
四、user.name 和 user.email(三个地方可以配置)
- 系统的(几乎不用), git config --system user.name 'lfw'
- 全局的, git config --global user.name 'lfw'
- 针对特定项目, git config --local user.name 'lfw'
- cat ~/.gitconfig 查看配置
- git commit --amend --reset-author 重新配置用户信息
五、.gitignore文件
六、分支
查看分支 :git branch 或者 git branch -a 或者 git branch -av
创建新的分支 :git branch v_new_branch
切换分支: git checkout v_new_branch
创建并切换分支:git checkout -b test(分支名称)
切换到某次提交:git checkout 5a7cf(提交的Logid)
根据某次提交的Log Id创建一个新的分支:git branch fixbug(分支名称) 5a7cf(提交的Logid)
修改分支名称:git branch -m master master2(名称由master 改成 master2)
推送新的分支:
git push --set-upstream origin dev (dev:dev2)
git push -u origin test
一样的效果
git push origin HEAD:dev2
git push origin dev:dev2拉取远程分支:
git checkout -b dev origin/dev
git checkout --track origin/dev删除本地分支:git branch -d dev
删除远程分支:
git push origin :dev(将本地空的分支推送到远程分支)
git push origin --delete dev克隆远程分支:git clone 远程仓库地址 文件夹
合并某分支到当前分支:git merge <name>
git checkout -- 文件 :工作区的内容,回到最后一次add到暂存区的内容。
git reset HEAD test.txt :移除一次add。
七、临时保存(stash)
- git stash save '分支修改Bug,临时保存工作内容'
- git stash pop 恢复最后一个临时保存工作内容。
- git stash list 查看临时保存列表。
- git stash apply stash@{1} ,回复到列表中的指定位置。
-
git stash drop stash@{0} ,删除一条临时保存。
八、Git标签
- git tag v1.0.0 简单的打个标签
- git tag -a v1.0.5 -m '带消息的' 带注释信息的打标签
- git tag 查看标签列表
- git tag -l 'v*' 查找tag
- git tag -d v1.0.0 删除本地tag
git push origin :refs/tags/v1.0
git push origin --delete tag v1.0 - git push origin v1.0 v2.0 (将标签推送到远程)
-
git push origin --tags(推送所有标签到远程)
九、Diff 和文件删除
-
git blame test.txt (查看这个文件修改信息)
- rm -rf .git(删除文件夹下的内容包括文件夹)
- rm -rf * 删除当前目录下的所有文件
十、关联远程仓库(常用)
- 创建本地git:git init
- 添加到暂存区: git add .
- 提交到本地仓库: git commit -m '准备关联远程仓库'
- 去创建远程项目,并得到远程项目的地址
- 本地添加远程仓库: git remote add origin 远程仓库的项目地址
- 如果是SSH,就配置一下SSH:git remote show origin
- 关联本地仓库: git push -u origin master
- 输入帐户和密码,搞定。
SSH配置
- git remote show 显示远程仓库名称
- git remote show origin(远程仓库名称),显示详情信息
- SSH生成配置
-
- which ssh-keygen
-
- ssh-keygen(回车、回车就行)
-
- 复制id_rsa.pub复制到远程仓库
-
分支开发模型
设置别名: git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
多模块开发一:submodule
- 添加submodule:git submodule add [email protected]:wenkency/git_child.git libxxx
- 更新远程:git submodule foreach git pull
- 克隆一:
git clone http://xxx parent
git submodule init
git submodule update --recursive - 克隆二:
git clone http://xxx git_parent --recursive
5.删除submodule
git rm --cached libxxx
rm -rf libxxx
git add .
git commit
多模块开发二:subtree
- 关联:git remote add subtree-origin http://xxx
- 添加: git subtree add --prefix=subtree(目录) subree-origin master --squash
- 更新:git subtree pull --prefix=subtree subtree-origin master --squash
- 推送:git subtree push --prefix=subtree subtree-origin master
--squash(合并提交信息) ,生成提交新的ID。--squash要么都用,要么都不用
转载于:https://www.jianshu.com/p/7f2d6ea56553