git on windows:
安装:https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
下载:https://git-scm.com/download/win
使用:
1,配置用户名和邮箱:
git config --global user.name "zhangsan"
git config --global user.email "zhangsan@xxx.com"
2,创建ssh:
ssh-keygen -t rsa -C "youremail@example.com"
然后一路回车。
然后c盘->用户->自己的用户名->.ssh 就有了,把.pub的,也就是公钥的copy下来
3,登录gitlab 设置公钥
私有url/-/profile/keys 页面
4,在vscode里使用:
https://segmentfault.com/a/1190000016593233
git 常用命令:
git branch 查看当前分支 | |
1.Git branch | |
一般用于分支的操作,比如创建分支,查看分支等等, | |
1.1 git branch | |
不带参数:列出本地已经存在的分支,并且在当前分支的前面用"*"标记 | |
1.2 git branch -r | |
查看远程版本库分支列表 | |
1.3 git branch -a | |
查看所有分支列表,包括本地和远程 | |
1.4 git branch dev | |
创建名为dev的分支,创建分支时需要是最新的环境,创建分支但依然停留在当前分支 | |
1.5 git branch -d dev | |
删除dev分支,如果在分支中有一些未merge的提交,那么会删除分支失败,此时可以使用 git branch -D dev:强制删除dev分支, | |
1.6 git branch -vv | |
可以查看本地分支对应的远程分支 | |
1.7 git branch -m oldName newName | |
给分支重命名 | |
2. Git checkout | |
1. 操作文件 2. 操作分支 | |
2.1 操作文件 | |
2.1.1 git checkout filename 放弃单个文件的修改 | |
2.1.2 git checkout . 放弃当前目录下的修改 | |
2.2 操作分支 | |
2.2.1 git checkout master 将分支切换到master | |
2.2.2 git checkout -b master 如果分支存在则只切换分支,若不存在则创建并切换到master分支, | |
2.3 查看帮助 | |
git checkout --help | |
当然git checkout还有许多命令,但这些已经能满足我们日常开发所需 | |
git checkout test 切换分支到test | |
git push | |
git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名> | |
例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名, | |
第一个master是本地分支名,第二个master是远程分支名。 | |
1.1 git push origin master | |
如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建 | |
git tag | |
列出现有标签 git tag | |
新建标签 git tag -a v1.4 -m 'my version 1.4' | |
查看某个标签 git show v1.4 | |
git init | |
git status | |
git diff filename | |
git add filename (添加文件,提交修改与添加文件一样,与删除时的git rm 一个级别) | |
git commit -m "xxx" (真添加文件 提交到仓库) | |
git push(本地提交更改过的代码到远程git库,注意是全部) | |
git pull(服务器从远程git库拉全部更改过的代码,注意是全部) | |
rm text.txt(本地删除文件) | |
git checkout -- test.txt(误删后 仓库恢复文件) | |
git rm test.txt(真想删除 仓库删文件) | |
git commit -m "remove test.txt"(真想删除 将仓库删提交) | |
git rm . (git commit -am "message" (a表示所有 m备注信息)删除当前目录所有文件) | |
git clone git@jdb-dev.com:server/support.git (从远端服务器clone代码) | |
git reset --hard(删除服务器文件后,在执行 git pull) | |
git mv filefrom fileto (重命名) | |
git log | |
git reset --hard commit_id | |
git reflog | |
git diff HEAD -- filename (查看工作区与版本库区别) | |
git remote add origin https://github.com/sk77github/sk77github.git | |
git push -u origin master | |
git remote | |
git remote -v (查看远程项目名与地址) | |
Command line instructions | |
Git global setup | |
git config --global user.name "许武" | |
git config --global user.email "xuwu@jiedaibao.com" | |
Create a new repository | |
git clone git@jdb-dev.com:server/support.git | |
cd support | |
touch README.md | |
git add README.md | |
git commit -m "add README" | |
git push -u origin master | |
Existing folder or Git repository | |
cd existing_folder | |
git init | |
git remote add origin git@jdb-dev.com:server/support.git | |
git add . | |
git commit | |
git push -u origin master | |
-------------------------------------------------------------------------------------------------------------- | |
常见问题解决 | |
报gnome-ssh-askpass:14344 | |
执行unset SSH_ASKPASS |