git命令参数
git add file
git branch 查看所有分支
git branch -d [分支名] -D 强制删除
git branch --set-upstream-t=origin/[分支名] [分支名] 建立本地分支和远程分支的关联
git checkout -- file 撤销工作区修改回到最近一次的git commit或git add
git checkout -b [分支名] 此命令相当于git branch [分支名] 和 git checkout [分支名] 两个命令
git checkout -b [分支名] origin/[分支名] 创建并切换到新分支,新分支的内容从远程分支上拉取
git clone [远程仓库地址]
git commit -m [注释]
git commit --amend 修改最后一次的注释
git diff
git log --graph 可看到分支合并图
git log --pretty=oneline --abbrev-commit
git log --author=authorName --oneline 查看某人提交记录
git show commitID 显示某次提交的详细信息
git merge [分支名] 把参数中的分支修改合并到当前分支
git merge --no-ff -m [注释] [分支名] 把合并的信息当作commit提交记录下来
git pull <远程主机名> <远程分支名>:<本地分支名>
git push -u origin master 第一次推送master分支的所有内容
git push origin master 第二次及以后推送master分支上的内容
git push -f origin master 强制推送master分支上的内容,本地仓库完全覆盖远程仓库(有些git系统不支持,具有风险性)
git reflog 记录历史命令
git remote 查看远程仓库
git remote -v 查看远程仓库详细信息
git remote add origin [远程仓库地址]
git reset --mixed这样文件退出暂存区,但是修改保留
git reset file 把暂存区的修改撤销
git reset --hard HEAD^ 回退到上一个版本(HEAD表示当前版本)
git rm 删除一个文件
git rebase [分支名] 把参数中的分支合并到当前分支,不过不会产生合并记录
git status
git stash
git stash list 查看所有stash
git stash apply 恢复
git stash drop 删除stash
git stash pop 恢复并删除stash
git tag 查看所有表签
git tag [标签]
git tag [标签] [commitID] 为某个commitID打上标签
git tag -d [标签] 删除标签
git push origin [标签] 推送标签到远程仓库
git push origin --tags 一次性推送所有标签到远程仓库
删除远程仓库标签经过两步:①git tag -d [标签] ②git push origin :refs/tags/[标签]
git remote set-url origin [url] 重置远程仓库信息
git show [标签] 显示标签信息
1. 撤销修改说明:
① 未add git checkout --file 或 手动删除工作区修改 工作区clean 暂存区clean
② add git reset HEAD file (将暂存区修改删除) 暂存区clean 工作区wait add
git checkout --file (暂存区恢复到工作区) 工作区clean 暂存区clean
③ add commit git reset --hard HEAD^ (版本回退) 工作区clean 暂存区clean
2. git 一个分支完全覆盖另一个分支
git checkout master // 切换到旧的分支
git reset --hard develop // 将本地的旧分支 master 重置成 develop
git push origin master --force // 再推送到远程仓库
3. 空项目推送到git上
git init
git remote add origin [远程地址]
git add . && git commit -m "注释"
git push -u origin master
4. 拉取submodule
git submodule update --init --recursive
5. git add 忽略文件
1)忽略文件: git update-index --assume-unchanged filename
2)取消忽略文件: git update-index --no-assume-unchanged filename
6. 将远程库的单个文件回退到某一版本
工作区 - 暂存区 - 本地版本区
1)git log demo.js
2)git reset [回退到的commit id] demo.js 将本地版库和暂存区中的文件回退到历史版本
3) git checkout demo.js 暂存区中文件的历史版本覆盖工作区中对应的文件
4)git add commit push正常提交
.gitignore 配置文件
- 配置语法:
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
- 示例:
(1)规则:fd1/*
说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;
(2)规则:/fd1/*
说明:忽略根目录下的 /fd1/ 目录的全部内容;
(3)规则:
/*
!.gitignore
!/fw/bin/
!/fw/sf/
说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;
git配置生成ssh key
- 配置git用户名和邮箱
git config user.name "用户名"
git config user.email "邮箱"
在config后加上 --global 即可全局设置用户名和邮箱。
2. 生成ssh key
ssh-keygen -t rsa -C "邮箱"
git忽略换行方式拉取
git拉取代码的时候,会自动将代码中的换行方式转化成你当前系统的换行方式。
git config --global core.autocrlf false