git学习——命令

参考教程:廖雪峰git教程

1. 创建和使用仓库:

打开Git Bash,创建一个空目录,使用git init把目录变成仓库;

在该目录下新建一个txt文件,把文件放到git仓库:两步(把文件修改添加到暂存区 $git add try.txt  ;  提交修改,把暂存区的所有文件提交到当前分支 $git commit -m "说明message")

2. 文件修改:

$git status 查看仓库当前状态,哪个文件被修改过;

$git diff try.txt 查看文件哪里被修改了;之后还可以通过上述两步提交。

$git diff HEAD -- try.txt 查看工作区(没有add和提交过)中文件和版本库中最新版本的区别(commit提交过)

3. 查看历史纪录:$git log  由近到远显示commit id  author  time  和曾经输入的"说明message"

简化显示:$git log --pretty=oneline

4. 版本回退:$git reset --hard HEAD^  HEAD表示最新版本,一个^表示上一个版本,两个^^表示上上个版本,往上100个版本HEAD~100

想要再回来之前的版本,需要保证命令行没有关闭,找到之前最新版本的id,$git reset --hard *****(id可以只写前几位,git会自动寻找)

查看文件内容:$cat try.txt  修改文件内容:vi try.txt (:wq保存并退出)

记录每一次命令:$git reflog 从而可以在再次打开命令行时也记得某个版本的id

5. 撤销修改:git checkout -- try.txt 将在工作区中所作的修改撤销,回到最新一次add或commit的文件

撤销暂存区的修改(已经add过了):$git reset HEAD try.txt  把暂存区的修改撤销掉,重新放回工作区,需要再次在工作区撤销修改

6.文件删除:工作区删除,在文件夹中删除或者rm test.txt

继续在版本库中删除:git rm test.txt  并且git commit -m "说明";

误删,从版本库中还原到工作区中:git checkout -- try.txt   //和撤销在工作区中的修改一样,都是把版本库中的文件替换工作区中的文件

7.远程库:关联:$git remote add origin(远程库的名字) [email protected]: tttabc**(账户名)/newgit(本地目录名字).git

第一次推送所有内容:git push -u origin master

一般推送:git push origin master(origin:远程仓库的名称;master:本地推送的分支的名称)

从远程库克隆:$git clone [email protected]:ttabc**/gitskills.git(使用SSH协议)

或者$git clone https://github.com/tttabc**/gitskills.git

抓取分支:git checkout -b dev origin/dev(远程origin的dev分支)

8. 创建分支:git branch dev(新分支的目录名)

切换分支:git checkout dev

创建分支并切换:git checkout -b dev

查看分支:git branch

合并某分支到当前分支:git merge dev(dev分支)  //即使是同一个文件在某分支上修改并提交后,切换分支后仍看不到修改后的,除非进行合并

no-ff合并:git merge --no-ff -m "这是一次commit需要说明"  不使用fast-forward模式,可以从分支历史上看到分支信息;使用fast-forward模式,就看不出来曾经做过合并

删除分支:git branch -d dev(分支名字)  //合并后可以删除分支

合并前强行删除分支:git branch -D dev

9. 分支冲突:分别在两条分支上修改同一个文件并提交,合并分支时会发生冲突(会报告发生冲突的文件,文件的内容会改变)。修改方法是:手动修改该文件,之后再add commit提交。

查看分支的合并情况:git log --graph --pretty=oneline --abbrev-commit

10. Bug分支:保存当前工作现场:$git stash

查看保存的多个工作现场:git stash list

回复工作现场:①git stash apply:不删除stash内容,需要用git stash drop来删除。多个工作现场时:git stash apply stash@{0}(id)

②git stash pop:恢复的同时也把stash删除了

11. 多人协作:推送自己的修改 $git push origin dev

如果远程分支比本地的更新,需要git pull把最新提交抓下来,然后手动解决冲突,再提交,再push.

git pull失败,需要设置dev和origin/dev的链接。

全程参考

12. 标签:新建标签:git tag name(标签名):默认打在最新的commit上

一般方法:git tag name commit-id(想要打标签的commit的id号)

                git tag -a name -m "标签描述" commit-id

查看标签:git tag  ;  git show name

删除标签:git tag -d name

推送标签到远程:git push origin (远程仓库名) name

一次推送本地所有标签:git push origin --tags

删除已经推送的标签:git tag -d name;  git push origin :refs/tags/name

13. 搭建git服务器:链接





猜你喜欢

转载自blog.csdn.net/tttabcgy/article/details/80508828