-
设置用户名和邮箱(--global表示全局)
- git config --global user.name "Your Name"
- git config --global user.email "email@example.com" -
创建仓库
- git init
-
将文件添加到暂存区
- git add example.txt
-
把文件提交到仓库
- git commit -m "提交说明"
-
查看文件修改记录
- git diff example.txt
-
查看暂存区状态
- git status
-
查看提交日志
- git log
- 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数 -
版本回退
- git reset --hard HEAD^
- 用HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上一个版本,往上100个版本用HEAD~100表示
- git reset --hard commit_id
- 回到commit_id代表的某个版本
- 以上操作会删除git log记录 -
撤销修改
-
修改后 未add(添加到暂存区) 需要撤销修改时:
- git checkout -- example.txt 或 手动删除工作区修改
- 工作区 : clean 暂存区: clean -
修改后 add了(未commit) 再次修改文件 要撤销第二次修改时:
- git checkout -- example.txt (将暂存区恢复到工作区)
- 暂存区有第一次的修改需要commit -
修改后 add了(未commit),需要撤销修改时:
- git reset HEAD example.txt (将暂存区修改删除)
- 此时工作区的修改还未撤销
- git checkout -- myfile.txt (撤销工作区修改) -
修改后 add并commit了,需要撤销修改时:
- git reset --hard HEAD^ (版本回退)**
-
-
删除文件
-
将文件放入暂存区并提交
- git add example.txt
- git commit -m "new commit" -
删除文件
- rm example.txt -
情况一:确定要从版本库中删除该文件
- git rm example.txt
- git commit -m "remove example.txt" -
情况二:恢复误删
- git checkout -- example.txt
- git checkout其实是用版本库里的版本替换工作区的版本,只能恢复文件到提交的最新版本
-
-
添加远程库
-
关联一个远程库
- git remote add origin git@server-name:path/repo-name.git
- 远程仓库默认名称为 origin -
查看远程库信息
- git remote
- git remote -v 显示详细信息 -
删除远程库
- git remote remove origin
- origin为默认仓库名 -
推送本地内容
- git push -u origin master
- 若提示要先fetch,则执行git pull origin master
- 成功后提示输入描述为什么合并是必须的,操作如下:
press "i"
write your merge message
press "esc"
write ":wq"
then press enter
- 然后再执行以上操作
-
-
创建与合并分支
- 查看分支:git branch
- 创建分支:git branch <name>
- 切换分支:git checkout <name>
- 创建+切换分支:git checkout -b <name>
- 合并某分支到当前分支:git merge <name>
- 删除分支:git branch -d <name>
- 强制删除分支:git branch -D <name>
-
解决冲突
- branch_zj分支对example.txt做了修改,add和commit后,切换到master分支
- 同样在master分支修改example.txt,add和commit后,没有这一步一般不会冲突
- 执行:git merge branch_zj
- 提示冲突,修改文件
- 再执行add和commit
- git branch -d branch_zj 删除被合并的分支 -
强制禁用Fast forward模式
- git merge --no-ff -m "commit messagee" branch_zj
-
储藏当前工作区修改
-
git stash
- 把当前分支所有没有 commit 的代码先暂存起来 -
git stash list
- 列出暂存记录 -
git stash apply [stash_id]
- 恢复暂存代码,如果省略 stash_id 默认恢复最近的暂存记录 -
git stash drop [stash_id]
- 删除指定暂存记录,若没指定stash_id则删除最近一条stash记录 -
git stash pop [stash_id]
- 还原代码,并删除该条stash记录 -
git stash clear
- 就是清空所有暂存区的记录
-
-
推送分支
- git push origin <branch_name>
-
创建标签
-
git tag <tag_name>
- 默认标签是打在最新提交的commit上 -
git tag <tag_name> <commit_id>
- 为指定的提交创建标签 -
git tag
- 查看标签列表,标签是按字母排序的 -
git show <tag_name>
- 查看标签信息 -
git tag -a <tag_name> -m "description"
- 创建带说明的标签
-
-
操作标签
-
git tag -d <tag_name>
- 删除标签 -
git push origin <tag_name>
- 推送某个标签到远程
- 创建的标签都只储存在本地,不会自动推送到远程 -
git push origin --tags
- 一次性推送全部尚未推送到远程的本地标签 -
删除远程标签
- git tag -d <tag_name> 本地删除
- git push origin :refs/tags/<tag_name> 远程删除
-
-
忽略特殊文件
- 添加.gitignore,写入要忽略的文件名
- 忽略的文件不能执行add,可用 -f 强制添加到Git
- git add -f ignored.txt
- 检查文件是否被忽略: git check-ignore -v ignored.txt
网友评论