命令别名
cd ~/
vi .bashrc
添加以下内容
# 友好的日志显示
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
# 友好的文件列表显示
alias ll='ls -al'
创建仓库
克隆一个已创建的仓库
通过 SSH
$ git clone ssh://user@domain.com/repo.git
通过 HTTP
$ git clone http://domain.com/user/repo.git
创建一个新的本地仓库
$ git init
添加修改
添加修改到暂存区
把指定文件添加到暂存区
$ git add xxx
把当前所有修改添加到暂存区
$ git add .
把所有修改添加到暂存区
$ git add -A
提交修改到本地仓库
提交本地的所有修改
$ git commit -a
提交之前已标记的变化
$ git commit
附加消息提交
$ git commit -m 'commit message'
储藏
有时,我们需要在同一个项目的不同分支上工作。当需要切换分支时,偏偏本地的工作还没有完成,此时,提交修改显得不严谨,但是不提交代码又无法切换分支。这时,你可以使用 git stash 将本地的修改内容作为草稿储藏起来。
官方称之为储藏,但我个人更喜欢称之为存草稿。
1.将修改作为当前分支的草稿保存
$ git stash
查看草稿列表
$ git stash list stash@{0}: WIP on master: 6fae349 :memo: Writing docs.
3.1 删除草稿
$ git stash drop stash@{0}
3.2 读取草稿
$ git stash apply stash@{0}
撤销修改
移除缓存区的所有文件(i.e. 撤销上次git add)
$ git reset HEAD
将HEAD重置到上一次提交的版本,并将之后的修改标记为未添加到缓存区的修改
$ git reset <commit>
将HEAD重置到上一次提交的版本,并保留未提交的本地修改
$ git reset --keep <commit>
放弃工作目录下的所有修改
$ git reset --hard HEAD
将HEAD重置到指定的版本,并抛弃该版本之后的所有修改
$ git reset --hard <commit-hash>
用远端分支强制覆盖本地分支
$ git reset --hard <remote/branch> e.g., upstream/master, origin/my-feature
放弃某个文件的所有本地修改
$ git checkout HEAD <file>
删除添加.gitignore文件前错误提交的文件:
$ git rm -r --cached . $ git add . $ git commit -m "remove xyz file"
撤销远程修改(创建一个新的提交,并回滚到指定版本):
$ git revert <commit-hash>
彻底删除指定版本
执行下面命令后,commit-hash 提交后的记录都会被彻底删除,使用需谨慎
$ git reset --hard <commit-hash> $ git push -f
更新与推送
更新
下载远程端版本,但不合并到HEAD中
$ git fetch <remote>
将远程端版本合并到本地版本中
$ git pull origin master
以rebase方式将远端分支与本地合并
$ git pull --rebase <remote> <branch>
推送
将本地版本推送到远程端
$ git push remote <remote> <branch>
删除远程端分支
$ git push <remote> :<branch> (since Git v1.5.0) $ git push <remote> --delete <branch> (since Git v1.7.0)
发布标签
$ git push --tags
查看信息
显示工作路径下已修改的文件:
$ git status
显示与上次提交版本文件的不同:
$ git diff
显示提交历史:
从最新提交开始,显示所有的提交记录(显示hash, 作者信息,提交的标题和时间)
$ git log
显示某个用户的所有提交
$ git log --author="username"
显示某个文件的所有修改
$ git log -p <file>
显示搜索内容:
从当前目录的所有文件中查找文本内容
$ git grep "Hello"
在某一版本中搜索文本
$ git grep "Hello" v2.5
分支
增删查分支
列出所有的分支
$ git branch
列出所有的远端分支
$ git branch -r
基于当前分支创建新分支
$ git branch <new-branch>
基于远程分支创建新的可追溯的分支
$ git branch --track <new-branch> <remote-branch>
删除本地分支
$ git branch -d <branch>
强制删除本地分支,将会丢失未合并的修改
$ git branch -D <branch>
切换分支:
切换分支
$ git checkout <branch>
创建并切换到新分支
$ git checkout -b <branch>
标签
将分支合并到当前HEAD中
$ git merge <branch>
本文作者:Arimura Sena
本文链接:https://hotaru.icu/archives/233/
版权声明:转载时须注明出处及本声明