【转】Git常用命令指南

1、git init 初始化一个Git仓库,git init –bare example.git创建一个裸仓,即没有工作区的git仓库。
2、添加文件到Git仓库,分两步:
git add <filename>,该命令可以多次使用,添加多个文件;
git commit -m “commit提交注释说明”,完成。
3、git status 查看当前工作区的状态。
4、git diff <filename> 查看修改的内容,红色为删除部分;绿色为新加部分。
5、git log 查看系统中历史commit提交记录。
如:git log或者git log –-pretty=oneline,只输出一行附加参数。
其中pretty指定打印提交记录内容的格式,可选值由:oneline,short,medium,full等等。
补充,–-graph可以查看分支合并图,–-abbrev-commit打印简短commit_id。
6、git reset –-hard <commit_id> 将head指针设定为指向指定的commit_id。
HEAD表示当前版本id
HEAD^表示上一个版本id
HEAD^^表示上上个版本id
HEAD~100表示上上100个版本id
版本id也可以通过git log命令查看,commit就是了。
7、git reflog 记录每一次有关head的历史命令记录
8、工作区、暂存区、版本库三者概念。
工作区,英文名叫做working directory就是当前工作目录;
暂存区,英文名叫做stage,已添加但是还未提交到仓库的区域;
版本库,英文名叫做repository,对应为在工作区下隐藏目录.git/
补充,版本库里边又细分分支、HEAD指针等。
git add添加文件命令,将文件从工作区放到暂存stage区;
git commit提交命令就是把stage区的所有内容提交到当前分支中。
9、git checkout –- <filename> 把工作区中对filename文件的修改撤销掉,分两种情况:
其一为修改后还没放到暂存区(即还没使用git add命令)现在撤销修改就是回到版本库状态;
其二为已经添加到暂存区后,又做了修改,现在撤销修改就是回到添加到暂存区后的状态。
总之,就是让该文件回到最近一次git add或git commit时的状态。
请注意,git checkout <name> 是切换到对应的分支上。
10、git reset HEAD <filename> 把暂存区中对filename的修改撤销掉。
此处为把修改从暂存区撤销到工作区,要想撤销工作区的修改,要进一步使用git checkout –-<filename>命令处理。
若修改已经提交到版本库中,在没有把本地版本推送到远程仓库情况下可以使用git reset –-hard <commit_id>命令进行版本回退处理。
11、git rm <filename> 删除掉暂存区中的文件filename,使用git commit提交删除申请,从版本库中删除文件。
12、ssh-keygen -t rsa -C “[email protected]” 在用户主目录下生成密钥对。-t rsa指定加密方式为rsa加密方式。
13、git config –-global user.name “xxx” 设定用户名,全局有效。
14、git config –-global user.email “[email protected]” 设定邮箱,全局有效。
15、git remote add origin [email protected]:<github用户名>/<仓库名>.git 将本地仓库和github仓库关联起来。
16、git push -u origin master 将本地仓库的所有内容推送到远程仓库上,只在第一次推送的时候加上-u参数。
git push origin master可能会遇到远程有添加文件,但是本地没有,应该先执行git pull将远程仓库拉到本地仓库中。
git pull处理完毕后,再执行git push origin master推送本地仓库内容到远程仓库。
git push origin master,这边master其实一个refspec,格式为:<src>:<dst>冒号前表示local本地分支名称,冒号后表示remote远程仓库下分支名称。
若dst省略了则默认和local相同的branch分支名称,简单描述为以下几类命令是等价的:
git push origin master 远端默认名称为origin,冒号后边不写表示和本地相同。
git push origin 默认将当前HEAD所指向的分支内容push到远端。
git push origin master:master 冒号前后分别表示本地和远端的分支名称。
git push orgin master:refs/heads/master
17、git clone [email protected]:<github用户名>/<仓库名>.git 从远程仓库克隆到本地仓库。
18、git branch 查看分支;git branch <name> 创建分支;git checkout <name> 切换分支。
git branch –-set-upstream <branchname> origin/<branchname> 将本机分支和远程分支关联起来。
git checkout -b <name> 创建并切换到分支name,相当于是git branch <name>和git checkout <name>两步操作。
19、git merge <name>合并分支name到当前分支,若合并发生冲突,直接要解决冲突(通过git status查看冲突文件)
必须手动处理冲突文件,处理完毕后经过git add/commit提交过程。
--no-ff参数表示禁止使用Fast forward模式合并,应为本次合并创建一个新的提交commit,加入-m注释说明信息。
20、git branch -d <name> 删除分支name,大D参数为git branch -D <name>强行删除name分支。
21、git stash 将当前工作现场储藏起来,等以后恢复现场后继续工作。
22、git stash list 查看当前现场情况,恢复方式有:
git stash apply 恢复,但是恢复后,stash内容并不会删除,需要通过git stash drop删除。
git stash pop 恢复的同时将stash内容也删除掉,相当于是出栈操作。
23、git remote 查看远程仓库信息,加v参数为git remote -v展示抓取地址和push推送地址。
24、git pull 把别人最新的提交从远程仓库抓取下来。
25、git tag <name>[commit_id] 在commit_id处创建一个标签,commit_id默认为HEAD。
26、git show <tagname> 查看标签详细信息。
27、.gitignore文件,忽略特殊文件,参考http://github.com/github/gitignore 即可。
28、git commit --amend,重新编辑最近一次的提交注释信息,新生成了一个commit-id。

猜你喜欢

转载自www.cnblogs.com/blogofzxf/p/10748574.html