We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
先提交文件到本地暂存盘,然后再提交到本地仓库:
git add ./ git commit
或者只需要一条命令直接搞定:
git commit -am [message]
使用-am参数之前,建议一定要使用git status查看一下你当前文件的修改情况,看是不是所有的文件都需要被 commit,养成这个习惯很重要。因为本来分成两步的事情,可以让你在暂存区中进行一下确认。现在没有了这步确认,所以一定要使用git status查看一下。
-am
git status
此外,git add还可以指定参数来应对特定的情况:
git add
git add -u
git add .
git add -A
git add * -f
.gitignore
修改最近的一条 commit message
git commit --amend
git checkout -b [name]
git checkout -b 本地分支名 origin/远程分支名
git branch -m [newName]
git branch -l
git branch -r
git branch -vv
git branch -v
git remote show origin
master
git branch --merged
git branch --no-merged
git cherry-pick
git branch -D [branch_name]
git push origin :[branch_name]
git push origin -d <branch-name>
git branch -d `git branch --merged`
git remote prune origin
git branch -m <oldbranch-name> <newbranch-name>
git remote set-url origin [url]
git remote rm origin``git remote add origin [url]
git remote -v
这种情况一般发生在本地文件已经做了若干修改,但还没有提交到暂存盘。然后我想拉取一下远程仓库最新文件,结果因为某些文件和远程仓库造成冲突而无法拉取成功。这时你可以使用以下操作:
git stash git pull origin master git stash apply
第一步是将你修改过的文件先暂时贮藏起来(注意:和上面提到的暂存盘不是一回事儿),第二步是从远程仓库拉取最新的文件到本地,然后第三步是再将刚才贮藏的文件恢复出来。
三步操作完之后,最新文件已经拉取到本地,但是有可能和本地文件依然存在冲突。但此时你只要去解决每个文件的冲突即可。
这种情况一般发生在文件已经提交到本地仓库,但是往远程仓库推送时发生了冲突,可以使用以下操作:
git pull origin master --rebase git push origin master
先将远程操作仓库的提交记录拉到本地进行衍合,然后再次进行提交即可。
git reset [fileName]
commit
git revert
git checkout -- [fileName]
git checkout [branchName] -- [fileName]
git clean
-df
git reset --hard [origin/branchName]
git push origin master --force
先通过git log命令获取要恢复到的版本 hash 值,然后再用git reset恢复。--hard参数表示不会保留现在还未 stage 的修改:
git log
git reset
--hard
git reset [tree-ish] --hard
--soft参数表示会保留还未 stage 的修改:
--soft
git reset [tree-ish] --soft
git log --stat
git log -p
git log --grep [message]
git show [tree-ish]
git log -- pathname
git log --graph --decorate --oneline --simplify-by-decoration --all
git whatchanged
git shortlog -sn
git blame [filename]
git blame -L 10,11 README.md
git 默认情况下对文件名称是大小写不敏感的,例如,如果想将foo修改为Foo,并期望 git 能够识别出来,需要执行两步操作。首先,执行git mv foo tmp,将foo重命名为一个临时文件名;然后再执行git mv tmp Foo,将其命名为最终文件名即可。
foo
Foo
git mv foo tmp
git mv tmp Foo
git clone --recursive [url]
git submodule update --init --recursive
git submodule update --recursive --remote
git submodule add [url]
git submodule update
git config core.ignorecase false
git rm -rf --cached .
The text was updated successfully, but these errors were encountered:
No branches or pull requests
提交文件到本地仓库
先提交文件到本地暂存盘,然后再提交到本地仓库:
或者只需要一条命令直接搞定:
使用
-am
参数之前,建议一定要使用git status
查看一下你当前文件的修改情况,看是不是所有的文件都需要被 commit,养成这个习惯很重要。因为本来分成两步的事情,可以让你在暂存区中进行一下确认。现在没有了这步确认,所以一定要使用git status
查看一下。此外,
git add
还可以指定参数来应对特定的情况:git add -u
,将文件修改和文件删除添加到暂存盘git add .
或者git add -A
将文件修改、文件新建、文件删除添加到暂存盘git add * -f
将对文件的所有操作都添加到暂存盘,包括添加到.gitignore
中被忽略的文件修改最近的一条 commit message
分支操作
git checkout -b [name]
git checkout -b 本地分支名 origin/远程分支名
git branch -m [newName]
查看分支
git branch -l
git branch -r
git branch -vv
git branch -v
git remote show origin
master
分支:git branch --merged
master
分支:git branch --no-merged
合并分支
git cherry-pick
删除分支
git branch -D [branch_name]
git push origin :[branch_name]
、git push origin -d <branch-name>
清理分支
git remote prune origin
git branch -m <oldbranch-name> <newbranch-name>
仓库地址查看、修改
修改当前项目的远程仓库地址
git remote set-url origin [url]
git remote rm origin``git remote add origin [url]
git remote -v
拉取远程文件时,与本地文件发生了冲突:
这种情况一般发生在本地文件已经做了若干修改,但还没有提交到暂存盘。然后我想拉取一下远程仓库最新文件,结果因为某些文件和远程仓库造成冲突而无法拉取成功。这时你可以使用以下操作:
第一步是将你修改过的文件先暂时贮藏起来(注意:和上面提到的暂存盘不是一回事儿),第二步是从远程仓库拉取最新的文件到本地,然后第三步是再将刚才贮藏的文件恢复出来。
三步操作完之后,最新文件已经拉取到本地,但是有可能和本地文件依然存在冲突。但此时你只要去解决每个文件的冲突即可。
推送文件到远程仓库时,发生了冲突:
这种情况一般发生在文件已经提交到本地仓库,但是往远程仓库推送时发生了冲突,可以使用以下操作:
先将远程操作仓库的提交记录拉到本地进行衍合,然后再次进行提交即可。
文件版本恢复
git reset [fileName]
commit
操作,不会影响在这之前或者之后的commit
记录:git revert
git checkout -- [fileName]
git checkout [branchName] -- [fileName]
git clean
,加上-df
表示同时清除文件和文件夹git reset --hard [origin/branchName]
git push origin master --force
恢复当前项目到某一历史版本
先通过
git log
命令获取要恢复到的版本 hash 值,然后再用git reset
恢复。--hard
参数表示不会保留现在还未 stage 的修改:--soft
参数表示会保留还未 stage 的修改:查看修改历史
git log
,查看提交历史git log --stat
,查看每一次的提交都修改了哪些文件git log -p
,深入查看每一个文件的修改细节git log --grep [message]
,过滤查看提交日志git show [tree-ish]
,查看某一次提交的修改细节git log -- pathname
,查看指定目录/文件提交信息git log --graph --decorate --oneline --simplify-by-decoration --all
,查看所有分支的切换历史信息git whatchanged
,查看每一条提交记录的修改信息git shortlog -sn
,列出代码仓库的提交者统计信息git blame [filename]
,查看某一文件每一行的所有修改历史git blame -L 10,11 README.md
,查看指定行数的修改历史修改文件夹/文件名称操作
git 默认情况下对文件名称是大小写不敏感的,例如,如果想将
foo
修改为Foo
,并期望 git 能够识别出来,需要执行两步操作。首先,执行git mv foo tmp
,将foo
重命名为一个临时文件名;然后再执行git mv tmp Foo
,将其命名为最终文件名即可。git 子模块操作
git clone --recursive [url]
git submodule update --init --recursive
git submodule update --recursive --remote
git submodule add [url]
git submodule update
git 常用设置
git config core.ignorecase false
,忽略大小写.gitignore
中之后是不起作用的。解决办法就是在修改完.gitignore
之后,执行git rm -rf --cached .
命令即可The text was updated successfully, but these errors were encountered: