git分支管理与代码同步 — cmd line

2020-04-21  本文已影响0人  波罗的海de夏天

一、.gitignore(过滤文件)

常用的忽略文件/文件夹命令:

  1. # 表示一行注释;
  2. *.a 表示要忽略所有以a结尾的文件;
  3. !bb.a 表示bb.a文件不忽略;
  4. /todo_dir 表示项目根目录下的todo_dir文件,不包含mydir/todo_dir;
  5. build/ 表示build文件夹下的所有文件,过滤掉整个build文件夹;
  6. doc/*.txt 表示忽略doc文件夹下的txt文件,不包含子文件夹下的txt文件(如:doc/docker/aaa.txt);
  7. **/foo 忽略匹配路径条件的文件,如 /foo、aa/foo、 aa/bb/foo等;
  8. a/**/b 忽略匹配路径条件的文件,如 a/b、a/c/b、a/c/d/b等;

规则说明:

备注: .gitignore配置文件按行从上到下进行规则匹配;

参考文档: https://www.jianshu.com/p/74bd0ceb6182

示例:

.idea
*.log
*.zip
*.DS_Store
test/tmp/*

二、配置SSH

  1. 设置或修改用户名及邮箱:
git config --global user.name 'xxxxx' // username
git config --global user.email 'xxxx@xxx.com' // email
  1. SSH配置
  1. 将SSH-key配置到github/gitlab中。

三、Create Registory

  1. github/gitlab上创建远程仓库;
  2. 远程仓库同步到本地 git clone git@github.com:username/test.git
  3. 也可以创建本地仓库,再推到远程;
echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:username/test.git
git push -u origin master
  1. 本地仓库无法推到远程上的问题
git remote rm origin
git remote add origin git@github.com:username/test.git
git push -u origin master
  1. ssh: connect to host github.com port 22: Operation timed out问题
Host github.com /*服务器地址为github地址*/
User "XXX@XX.com" /*github上的注册邮箱为用户账号*/
Hostname ssh.github.com /*服务器地址为github地址*/
PreferredAuthentications publickey /*采用公匙*/
IdentityFile ~/.ssh/id_rsa /*公匙文件路径*/
Port 443 /*修改端口为443*/

四、分支管理cmd

  1. 查看分支:
# 查看本地
git branch
# 查看本地和远程
git branch -a
  1. 新建分支:git checkout -b branch-1 // 创建并切换
  2. 检出远程分支:git checkout -b 本地分支名 origin/远程分支名
  3. 分支切换:git checkout branch-1 // 单纯切换
  4. 分支合并:git merge branch-2 // branch-2合并至当前所在分支
  5. 分支提交:git push --set-upstream origin branch-1 or git push -u origin branch-1
  6. 分支删除:
# 删除本地分支
git branch -d branch-4
# 删除远程分支
git push --delete branch-4

五、同步代码cmd

# 查看状态
git status
# 暂存
git add .
# 提交本地仓库
git commit -m 'code info'
# 推送远程
git push
# 拉取本地仓库
git fetch
# 拉取本地仓库并merge到本地。相当于:git fetch + git merge
git pull

六、git日志

# 提交日志(操作记录)
git log
git log -p -2 // 最近两次提交记录
git log --stat
git log --pretty=oneline
git reflog // 提交记录
# 回退
git reset --hard HEAD  // 回退到上一版
git reset --hard HEAD^n  // 回退到上n版
git reset --hard HEAD^^^^  // 回退到上X版
git reset --hard commit_id // 回退到指定版本

七、文件暂存

# 文件暂存
git stash // 存
git stash list // 暂存区
git stash pop // 取
git stash clear // 删
git stash apply stash@{1} // 取某一条

八、创建标记 tag

# 添加 tag
git tag -a V1 -m 'my version 1'
# 提交远程
git push origin V1
# 查看 tag
git tag
git tag -l 'v*' // 正则
git show v1
# 删除 tag
git tag -d v1  // 本地
git push origin :refs/tags/V1 // 远程

九、比较

git diff
# 工作目录与本地仓库
git diff HEAD test_file
# 通过log_id比较
git diff commit_id_1 commit_id_2

十、图形化工具

  1. Source Tree
  2. Pycharm git
  3. Xcode git

十一、tig -- git命令行可视化

安装: brew install tig

参考文档:https://www.jianshu.com/p/d9f60c0abbf7

十二、配置终端工具

iTerm2 + Oh My Zsh -- 打造舒适终端体验;
参考文档:https://www.jianshu.com/p/9c3439cc3bdb

上一篇下一篇

猜你喜欢

热点阅读