一、初始化配置:
1.1 指定客户端用户名和邮箱,为了标记是谁向远程库传送数据
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
1.2查看用户名:$ git config user.name
1.3查看邮箱: $ git config user.email
1.4修改用户名:$ git config --global user.name "cyx"
1.5修改邮箱: $ git config --global user.email "328978553@qq.com"
1.6查看配置是否生效: $ git config --list
二、目录文件相关:
2.1创建目录: $ mkdir /d/softwear/Program
(“mkdir” 是“make Directory”; “/d/softwear/”是要创建目录的位置 “Program” 是新创建的目录)
2.2定位到Program指定目录: $ cd /d/软件/Program
2.3输出当前目录地址: $ pwd
2.4让之前创建的目录作为git可操作的仓库,此时再去刚才创建的program目录下会发现多了一个.git目录: $ git init
2.5查看当前仓库的隐藏目录,以及文件: $ ls –ah
2.6查看当前仓库的文件: $ ls
三、本地仓库关联远程库:
3.1关联Github远程库:$ git remote add origin git@server-name(服务器名即github用户名)/repo-name.git(远程仓库名.git)
如:$ git remote add origin git@zzwwqq/blog.git
;
3.2关联码云远程库:$ git remote add origin git@gitee.com:zwqzeq/Login_Register.git
四、操作远程仓库:
4.1显示远程库的详细信息: $git remote -v
4.2本地master分支内容推送到远程库的master分支: 第一次$ git push -u origin master
以后 直接$ git push origin master
4.3删除远程库: $ git remote rm origin
(origin远程库默认名称,建议不改)
4.4从远程库克隆: $ git clone git@github.com:zwqzeq/gitskills.git
4.5将本地仓库指定分支合并到远程仓库指定分支: $ git push origin dev_branch : dev_branch
4.6强行让本地分支覆盖远程分支: $ git push 远程库名 远程库的分支名 -f
4.7将远程仓库的某个分支合并到当前本地分支: $ git pull 远程仓库名 远程仓库的分支名
五、文件保存和提交:
5.1将文件从工作区添加到暂存区: $ git add <file>
5.2将文件从暂存区提交到版本库: $ git commit -m “提交说明”
5.3随时查看当前仓库的状态: $ git status
5.4查看修改了具体修改了那些内容: $ git diff <file>
六、日志相关:
6.1查看提交历史(只有commit过的才能查到),以便确定要回退到哪个版本: $ git log
6.2如果嫌输出信息太多,看得眼花缭乱的,可以不显示详细信息: $ git log --pretty=oneline
6.3如果嫌输出信息太多,看得眼花缭乱的,可以不显示详细信息: $ git log --pretty=oneline --abbrev-commit
6.4查看命令历史(包括reset,commit,checkout),以便确定要回到未来的哪个版本(不包括从工作区添加(add)到暂存区的命令): $ git reflog
七、版本回退:
7.1退回到上一个版本: $ git reset --hard HEAD^
//针对版本库
7.2退回到上上个版本: $ git reset --hard HEAD^^
7.3退回到上100个版本: $ git reset --hard HEAD~100
7.4退回到指定版本: $ git reset --hard commit_ID
7.5只丢弃暂存区修改: $ git reset HEAD <file>
//针对暂存区,让暂存区恢复之前的状态
7.6只丢弃工作区的修改: $ git checkout --<file>
//针对工作区,让工作区恢复之前的状态,即让工作区和暂存区一致,如果没有暂存区,则让工作区和版本库一致,如果该文件既没有添加到暂存区也没有提交到版本库,则工作区中该文件的修改不能被丢弃
八、分支相关:
8.1查看分支: $ git branch
8.2创建分支: $ git branch <name>
8.3切换分支: $ git checkout <name>
(注意与[恢复文件](file:///D:/QQFile/1107717335/FileRecv/Git%E8%AF%AD%E6%B3%95.doc#_2.%E5%B7%A5%E4%BD%9C%E5%8C%BA%E6%96%87%E4%BB%B6%E8%A2%AB%E5%88%A0%E9%99%A4)的区别,此处checkout后面没有“--”)
8.4创建+切换分支: $ git checkout -b <name>
8.5合并某分支到当前分支: $ git merge <name>
8.6删除分支: $ git branch -d <name>
8.7重命名分支: $ git branch -m old_branch new_branch
8.8看到分支合并情况: $ git log --graph --pretty=oneline --abbrev-commit
8.9可以禁用快速合并dev方式: $ git merge --no-ff -m "merge with no-ff" dev
8.10删除一般的分支: $ git branch -d <name>
8.11丢弃一个没有被合并过的分支,可以通过: $ git branch -D <name>
//强行删除
九、标签相关:
9.1默认标签是打在当前分支最新提交的commit上: $ git tag <name>
9.2指定一个commit id,给其打上标签,即以后标签可代表commit id: $ git tag <name> commit_id
9.3查看所有标签名: $ git tag
9.4查看标签信息: $ git show <tagname>
9.5指定标签信息: $ git tag -a <tagname> -m "blablabla..." commit_ID
9.6删除本地标签: $ git tag -d v0.1
9.7推送某个标签到远程(origin 是默认的远程库名,也可换成自定义的名字): $ git push origin <tagname>
9.8推送所有标签到远程(origin 是默认的远程库名,也可换成自定义的名字): $ git push origin --tags
9.9删除远程标签:如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除,然后,从远程删除:
$ git tag -d v0.9
$ git push origin :refs/tags/v0.9
十、临时保存工作现场:
10.1前工作现场“储藏(或称隐藏)”起来,等以后恢复现场后继续工作: $ git stash
10.2查看某个分支上隐藏工作区: $ git stash list
10.3恢复工作现场:两种方式:
方式一:用$ git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用$ git stash drop
来删除;
方式二:用$ git stash pop
,恢复的同时把stash内容也删了