git学习笔记
基本操作
-
初始化仓库
git init 路径(可加可不加,不加就默认在现在的路径)
-
将文件添加进缓存区
git add 文件名
添加当前目录的所有文件
git add .
-
提交
git commit -m '自定义提交的信息'
-
查看提交记录
git log
-
回退
git reset 回退记录的id(简单写前几位就行)
-
回退了向看回退之前的记录(可以查看每一次操作的记录)
git reflog
然后找到你想回退的那个版本的commit id 就行了
分支操作
-
切换分支
git checkout
后面可跟参数,不跟参数就默认切换到当前分支,可用于丢弃工作区的修改
-
丢弃修改两种情况
-
文件未被add
文件将会恢复到上一次提交的样子
-
已被add
文件恢复到add里面的样子
以下指令可以指定哪些文件切换到当前分支
放弃所有文件的修改
-
git checkout .
放弃某个文件的修改,即将某个文件切换到当前add或commit里面的状态
git checkout -- filename
合并分支
-
-
先切换到被合并的那个分支(如,你修改的分支是brach,你想把修改合并到master,那么就先checkout到master)
-
使用下述命令
git merge 修改完成的分支名
例子
//你修改的是branch分支,你想把修改合并到master
git checkout master
git merge branch
......解决冲突
git add *
git push/commit
远程操作
-
添加远程仓库
git remote add 远程仓库别名(自己起的) 远程服务器账号名@服务器地址或者服务器域名:仓库在服务器的路径
-
查看现有的远程仓库
git remote
-
push代码到远程仓库
git push 远程仓库别名 远程分支名
-
从服务器下载代码
-
直接pull(会直接合并到当前分支)
git pull 服务器别名
-
先fetch,再合并
git fetch 服务器别名
git merge 服务器别名/分支名
-
解决冲突
从服务器拉取代码时,若是有多人使用这个仓库,免不了有冲突,所以需要解决冲突
-
查看合并(merge)或者 拉取(pull)后,查看冲突的文件
git status
以下为例子
$ git status On branch master You have unmerged paths. (fix conflicts and run "git commit") (use "git merge --abort" to abort the merge) Unmerged paths: (use "git add <file>..." to mark resolution) both modified: merge.txt no changes added to commit (use "git add" and/or "git commit -a")
Unmerged paths:中,将会提示你冲突的文件
冲突的文件将会变成这个样子
未冲突的内容(两个分支都未改动)在分隔线外面 <<<<<<< HEAD Git当前所在分支修改的内容(准确来说是HEAD指针指向的分支修改的内容) ======= 要合并过来的分支修改的内容 >>>>>>> branch_to_merge
(保留某一个部分/都保留),然后把多出来的<<<<<<< HEAD 和 = = = = = = 和 >>>>>>> branch_to_merge 删除
然后再
git add . 或者 git add 冲突的文件名
然后
git commit -m '提交的信息'
就可以解决冲突了