git基本操作

在当前文件夹创建git目录

git init

添加当前文件夹的文件或确认文件修改(未保存)

git add 文件
git add . 添加该文件夹所有文件

删除当前文件夹的文件(未保存)

git rm 文件

保存并说明

git commit -m "说明"

查看之前的更改

git log

添加密钥

ssh-keygen -t rsa -C "邮箱"
然后将.ssh文件夹里的id_rsa.pub文件内容复制粘贴到GitHub的设置里面

设置本地用户名和邮箱

git config user.name "用户名"
git config user.email "邮箱"

添加远程服务器

git remote add 服务器名字 https://github.com/用户名/Repository名

查看远程服务器列表

git remote -v

删除远程服务器

git remote rm 服务器名字

上传项目到服务器

git push 服务器名字 分支

从服务器下载项目的A分支到本地的B分支

git fetch 服务器名字 A:B

比较A、B两分支

git diff A B

新建/删除/跳转到分支

git branch 分支名
git branch -d 分支名
git checkout 分支名

查看当前的分支

git branch

将B合并到A分支

git merge B A

合并分为以下情况:

  • 若B是A之前的版本或A是B之前的版本,则合并无效
  • 若B和A是同一版本衍生出的两个不同版本(比方说本地克隆了C,并把C改成了B,而网上的C经过PullRequest或其他人的push变成了A,然后把Afetch了下来),此时:
    • 若B和A修改的是不同文件,或同一文件的不同行,则merge会将两个修改合并(比方说C包括1.txt 2.txt 3.txt,A删除了3.txt变成1.txt 2.txt,B删除了2.txt变成1.txt 3.txt,则B合并到A后A只剩1.txt)。
    • 若B和A修改的是同一文件的同一行(实际情况可能不限于这个,反正就是改乱了),merge会失败,并将B和A冲突的文件的内容加上冲突提示标记,你需要手动将这个文件改成你预期的解决冲突后的样子。

实际工作中常用的命令(2025年10月更新)

以上是学生时代用过的命令,现在介绍工作中比较常用的命令:修改完代码后,首先查看一下修改了那些地方:

git status

会显示发生了什么变更,一般来说,对于修改的文件,会放到“未提交的变更”一栏,对于新增的文件,会放到“未跟踪的文件”一栏。

然后就是传统的 git add,由于.gitignore里不一定包含了所有需要忽略的文件,所以一般不会用git add .,而是根据git status显示的结果,用git add 文件添加需要的文件。这时候再查看git status,就会发现需要提交的文件已经变成绿色了。

然后就是 git commit -m "说明",不再赘述。这个时候,如果想把没用的修改全部取消,可以用

git checkout .

然后一般需要拉取一下服务器代码,防止别人提交了会和你产生冲突的代码,导致提交不上服务器。拉取要么在git commit之后执行,要么在所有修改之前执行,不然会提示变更未保存,无法拉取。拉取的命令是:

git pull --rebase

--rebase保证你的变更是放在 commit 记录的最顶上,防止代码评审时发生混乱。拉取的时候如果没发生冲突,那就无所谓,直接git push即可。如果发生冲突,就需要提示出现了冲突。用git status可以查看冲突的文件。打开冲突文件,搜索<<<<<<<,就可以看到冲突的地方。一般来说,冲突的地方会有两行=======,上面是本地的修改,下面是服务器的修改。

把冲突标记全部删掉,将代码改成合并以后的样子,执行

git pull --continue

冲突就解决了,可以直接 git push 提交。

另外,git commit完如果又作了修改,就先git add然后再

git commit --amend

这样会打开一个文件,提示你修改提交说明,如果不需要修改直接退出即可。

posted @ 2018-09-21 15:14  YuanZiming  阅读(165)  评论(0)    收藏  举报