Git常用命令
学习并掌握基本的Git命令
1.环境配置
这是比较重要的一步,因为Git每次提交都会使用该用户信息,所以安装Git后首先要做的事情是设置用户名称和email地址。
- 设置用户信息
git config --global user.name “lai”
git config --global user.email “123lai@qq.com”
ps:这里的user.name跟user.email是可以设置为任意名称的,Git提交时并不会进行验证。 - 查看配置信息
git config --list
通过上面的命令设置的信息会保存在~/.gitconfig文件中
2.获取Git仓库
获取Git仓库有两种方式:
- 在本地初始化一个Git仓库 命令:git init
- 从远程仓库克隆 命令:git clone [url]
3.Git工作目录下的文件存在两种状态
- untracked(未被纳入版本控制)
- tracked(被纳入版本控制)
- Unmodified 未修改状态
- Modified 已修改状态
- Staged 已暂存状态
ps:这些文件的状态会随着我们执行Git的命令发生变化
4.本地仓库操作
-
查看文件状态:git status
使输出信息更加简洁:git status -s -
将文件添加到暂存区:git add 文件名
-
将暂存区的文件取消暂存:git reset 文件名
-
将暂存区的文件提交到本地仓库:git commit -m ”日志内容“
-m:写日志
也可输入git commit后敲Enter进入编辑器编辑日志内容
总之,commit前一定要先写日志,才能commit。 -
删除文件:git rm 文件名
ps:这删除的只是工作区中的文件,需要提交到本地仓库,才算真正删除 -
将文件添加至忽略列表
ps:有些文件无需纳入Git的管理,也不希望他们出现在未跟踪列表里。通常都是些自动生成的文件,或者是编译过程中创建的临时文件。这时我们就可以创建一个文件(.gitignore,注意名称是固定的),列出要忽略的文件模式。 -
查看日志记录:git log
5.远程仓库操作
-
查看远程仓库:git remote
ps:查看的更仔细:git remote -v -
添加远程仓库:git remote add [shortname] [url]
ps:shortname是给远程仓库起一个名字。另外,一个本地仓库可以同时对应多个远程仓库 -
从远程仓库克隆:git clone [url]
-
移除无效的远程仓库:git remote rm
ps:该命令只是从本地移除远程仓库的记录,并不会真正影响到远程仓库 -
从远程仓库拉取代码
- git fetch:不会自动merge,需要手动
- git pull:会自动merge
ps:注意这一点:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件时就会报错(fatal:refusing to merge unrelated histories),解决此问题可以在git pull 命令后加入参数–allow-unrelated-histories
-
推送到远程仓库:git push [remotename] [branchname]
6.Git分支
-
查看分支
- 列出所有本地分支:git branch
- 列出所有远程分支:git branch -r
- 列出所有本地和远程分支:git branch -a
-
创建分支:git branch [branchname]
eg:git branch b1 -
切换分支:git checkout [branchname]
-
推送至远程仓库分支:git push [remotename] [branchname]
-
合并分支:git merge [branchname]
ps:合并分支时需注意这一点:如果在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,那Git就没法合并他们,同时会提示文件冲突。解决方案:打开冲突的文件并修复冲突内容,最后执行git add命令来标识冲突已解决。 -
删除分支:git branch -d [branchname]
强制删除分支:git branch -D [branchname]
7.Git标签
- 列出已有标签:git tag
- 查看特定tag信息:git show [tag]
- 新建一个tag:git tag [tagname]
- 将tag推送至远程仓库:git push [remotename] [tagname]
- 新建一个分支,指向某个tag:git checkout -b [branchname] [tagname]
- 删除标签
- 删除本地tag:git tag -d [tagname]
- 删除远程tag:git push [remotename] :refs/tags/[tagname]
—end----
感谢观看,希望对你有所帮助!
技术分享,阅读技术文章心得。