本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Git代码版本管理工具
作为程序员,必须掌握Git的使用,接下来描述一下Git的常规操作
- 使用 git commit -a 提交代码,想查看提交了哪些内容,可以使用如下命令:
git show
- commit message写错了,但是这时还没有push,可以使用如下命令修改提交信息
git commit --amend --only -m 'xxxxxxx'
- 提交(commit)里的用户名和邮箱不对
git commit --amend --author "New Authorname <authoremail@mydomain.com>"
- 从一个提交(commit)里移除一个文件
git checkout HEAD^ myfile
git add -A
git commit --amend
- 意外的做了一次硬重置(hard reset),想找回我的内容
- 如果你意外的做了 git reset --hard, 你通常能找回你的提交(commit), 因为Git对每件事都会有日志,且都会保存几天
git reflog
- 你将会看到一个你过去提交(commit)的列表, 和一个重置的提交。选择你想要回到的提交(commit)的SHA,再重置一次
git reset --hard SHA1234
- 暂存(Staging)
- 把暂存的内容添加到上一次的提交(commit)
git commit --amend
- 要暂存一个新文件的一部分,而不是这个文件的全部
git add --patch filename.x
- -p 简写。这会打开交互模式, 你将能够用 s 选项来分隔提交(commit);然而, 如果这个文件是新的, 会没有这个选择, 添加一个新文件时, 这样做
git add -N filename.x
- 然后, 你需要用 e 选项来手动选择需要添加的行,执行 git diff --cached 将会显示哪些行暂存了哪些行只是保存在本地了
- 把在一个文件里的变化(changes)加到两个提交(commit)里
- git add 会把整个文件加入到一个提交. git add -p 允许交互式的选择你想要提交的部分
- 分支(Branches)操作
- 扔掉本地的提交(commit),以便我的分支与远程的保持一致,先确认你没有推(push)你的内容到远程
// 会显示你领先(ahead)源(origin)多少个提交
git status
// 解决方法
git reset --hard origin/my-branch
- 删除一个分支
// 删除一个远程分支
git push origin --delete my-branch
// 删除一个本地分支
git branch -D my-branch
- 从别的远程分支签出(checkout)一个分支
// 远程拉取(fetch) 所有分支
git fetch --all
- Stash
- 暂存所有改动
// 暂存所有本地文件
git stash
// 排除一些文件
git stash -u
// 只暂存一个文件
git stash push working-directory-path/filename.ext
// 暂存多个文件
git stash push working-directory-path/filename1.ext working-directory-path/filename2.ext
// 暂存时记录多个消息
git stash save <message>
// 暂存时记录消息
git stash save <message>
// 查看stash记录
git stash list
- 其它
- 克隆所有子模块
git clone --recursive git://github.com/foo/bar.git
- 删除标签(tag)
git tag -d <tag_name>
git push <remote> :refs/tags/<tag_name>