git常用命令
- 设置当前使用者的名字:#git config --global user.name “Your Name” ;注意: --global 的意思是说这个设置是针对本台电脑的全局设置。如果只针对当前仓库,那么就不用加 --global。
- 设置使用者的邮箱:#git config --global user.email “email@example.com”
- 创建一个可用于git管理的目录:#mkdir /pathname/learngit
- 进入当前目录:#cd /pathname/lerngit
- 把这个目录变为git可以管理的仓库:#git init ;注意:git init 的意思就是在当前工程目录中建立一个.git 文件夹用于git版本管理。
- 告诉git,把文件添加到git:#git add filename;注意:git add 可以一次提交多个文件,也可以多次使用。如:git add filename1 filename2 … git add --all 可以一次提交全部工程下的文件。在提交前请记得配置.gitignore文件,把需要忽略的文件忽略掉。
- 告诉git,把文件提交到仓库:#git commit -m “本次提交修改的地方的描述”;注意:git commit 一次可以将全部暂存区的文件一次性都提交到仓库。
- 查看仓库当前状态:#git status
- 查看修改的内容:#git diff
- 历史版本切换:#git reset --hard commit_id ;注意:git reset --head commit_id 就是版本切换的意思,我可以切换到历史的某个版本,也可以切回未来的某个版本。
- 查看提交历史,以便确定要回退到哪个版本:#git log
- 查看命令历史,以便确定要回到未来的哪个版本:#git reflog
- 放弃当前工作区的修改:#git checkout – filename;注意:其实git checkout – filename 其实就是用版本库中的文件替换当前工作区的文件,所以就理解为了放弃当前工作区的修改。
- 删除工作区中的一个文件:#git rm filename
- 关联一个远程库:#git remote add origin git@server-name:path/repo-name.git;注意:这条指令时使用ssh协议关联的,也可以使用https ,不过https每次都需要输入登录口令,而且git推荐的也是使用ssh。
- 第一次推送master分支的所有内容:#git push -u origin master ;注意:由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
- 每次提交后,推送最新修改:#git push origin master
- 从远程服务器克隆一个git仓库:#git clone git@github.com:yourname/project.git;注意:GitHub给出的地址不止一个,还可以用https://github.com/yourname/project.git这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。
- 查看分支:#git branch
- 创建分支:#git branch name
- 切换分支:#git checkout name
- 创建+切换分支:#git checkout -b name
- 合并某分支到当前分支:#git merge name
- 删除分支:#git branch -d name
- 查看合并分支:#git log --branch 注意:查看分支历史:#git log --graph --pretty=oneline --abbrev-commit ;这种方式显示比较方便,也比较常用。
- 当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复bug是先创建一个分支,修复后再合并并删除该分支,修复后,再git stash pop,回到工作现场。
- 强行删除一个分支:#git branch -D name
- 查看远程库的信息:#git remote 注意:显示详细信息:git remote -v
- 从本地推送分支:#git push origin branch-name
- 在本地创建和远程分支对应的分支:#git checkout -b branch-name origin/branch-name 注意:本地分支的名字和远程分支的名字最好一致。
- 从远程抓取分支:#git pull
- 配置别名:# git config --global alias.st status
- 查看所有的标签:git tag
- 删除某一个标签:git tag -d tagName
- 创建带注释的标签: git tag -a tagName -m “annotate”
- 轻量级标签: git tag tagName
- 切换到某一个标签: git checkout tagName
- 本地拉取某个分支: git clone -b [remote repository address]
- 删除远程分支: git push orogin --delete 远程分支名
- commit了一个版本后,又对当前的版本做了微小的改动,但是不想再commit一个新的记录: git commit --amend